diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfo.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfo.java
index 2339534..4b14f95 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfo.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfo.java
@@ -16,25 +16,14 @@
 package org.openecomp.sdc.be.model;
 
 import java.util.List;
+import lombok.Getter;
+import lombok.Setter;
 
+@Getter
+@Setter
 public class UploadNodeFilterCapabilitiesInfo {
 
     private String name;
     private List<UploadNodeFilterPropertyInfo> properties;
 
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public List<UploadNodeFilterPropertyInfo> getProperties() {
-        return properties;
-    }
-
-    public void setProperties(List<UploadNodeFilterPropertyInfo> properties) {
-        this.properties = properties;
-    }
 }
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/PropertyValueDefinition.java b/catalog-model/src/test/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfoTest.java
similarity index 64%
rename from catalog-model/src/main/java/org/openecomp/sdc/be/model/PropertyValueDefinition.java
rename to catalog-model/src/test/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfoTest.java
index a10c1e0..7636528 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/PropertyValueDefinition.java
+++ b/catalog-model/src/test/java/org/openecomp/sdc/be/model/UploadNodeFilterCapabilitiesInfoTest.java
@@ -2,14 +2,14 @@
  * ============LICENSE_START=======================================================
  * SDC
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2020, Nordix Foundation. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,23 +20,22 @@
 
 package org.openecomp.sdc.be.model;
 
-import org.openecomp.sdc.be.datatypes.elements.InputsValueDataDefinition;
+import org.junit.Assert;
+import org.junit.Test;
 
-public class PropertyValueDefinition extends InputsValueDataDefinition implements IOperationParameter {
+public class UploadNodeFilterCapabilitiesInfoTest {
 
-    public PropertyValueDefinition() {
-        super();
+    private UploadNodeFilterCapabilitiesInfo createTestSubject() {
+        return new UploadNodeFilterCapabilitiesInfo();
     }
 
-    public PropertyValueDefinition(String name, String value) {
-        super(name, value);
+    @Test
+    public void testBuildDummyCatalogUpdateTimestamp() {
+        UploadNodeFilterCapabilitiesInfo testSubject;
 
-    }
-
-    @Override
-    public boolean isDefinition() {
-        // TODO Auto-generated method stub
-        return false;
+        // default test
+        testSubject = createTestSubject();
+        Assert.assertNotNull(testSubject);
     }
 
 }
