public enum SdcTypes {
 
-    CP("CP"), VL("VL"), VF("VF"), VFC("VFC"), PNF("PNF"), SERVICE("Service"), CVFC("CVFC"), SERVICE_PROXY("Service Proxy"), CONFIGURATION("Configuration");
+    CP("CP"), VL("VL"), VF("VF"), CR("CR"), VFC("VFC"), PNF("PNF"), SERVICE("Service"), CVFC("CVFC"), SERVICE_PROXY("Service Proxy"), CONFIGURATION("Configuration");
 
     private String value;
 
-    private static List<String> complexTypes = Arrays.asList(VF, PNF, SERVICE, CVFC).stream().map(SdcTypes::getValue).collect(Collectors.toList());
+    private static List<String> complexTypes = Arrays.asList(VF, PNF, CR, SERVICE, CVFC).stream().map(SdcTypes::getValue).collect(Collectors.toList());
 
     private SdcTypes(String value) {
         this.value = value;
 
     static ISdcCsarHelper resolveGetInputCsarQA;
     static ISdcCsarHelper resolveReqsCapsCsarQA;
        static ISdcCsarHelper portMirroring;
+       static ISdcCsarHelper csarHelperServiceWithCrs;
 
 
        static Map<String, HashMap<String, List<String>>> fdntCsarHelper_Data;
                QAServiceForToscaParserTests = getCsarHelper("csars/service-ServiceForToscaParserTests-csar.csar");
                resolveReqsCapsCsarQA = getCsarHelper("csars/service-sunny-flow2.csar");
                portMirroring = getCsarHelper("csars/service-PortMirroring.csar");
+               csarHelperServiceWithCrs = getCsarHelper("csars/service-CrTestService-csar.csar");
                
         fdntCsarHelper_Data = new HashMap<String, HashMap<String, List<String>>>(){
                {
 
     }
     //endregion
 
+    @Test
+    public void GetServiceNodeTemplateMetadataTypeCR() {
+        NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
+        Metadata nodeTemplateMetadata = csarHelperServiceWithCrs.getNodeTemplateMetadata(nodeTemplate);
+        assertNotNull(nodeTemplateMetadata);
+        assertEquals(nodeTemplateMetadata.getValue("resourceVendorModelNumber"), "");
+        assertEquals(nodeTemplateMetadata.getValue("type"), "CR");
+        assertEquals(nodeTemplateMetadata.getValue("name"), "chaya best cr");
+        assertEquals(nodeTemplateMetadata.getValue("version"), "0.1");
+    }
+
     //region getConformanceLevel
     @Test
     public void testSunnyGetConformanceLevel() {
 
 import static org.testng.Assert.assertTrue;
 import java.util.*;
 import static org.hamcrest.CoreMatchers.is;
+
+import com.google.common.collect.ImmutableMap;
 import org.apache.commons.lang3.tuple.Pair;
 import org.openecomp.sdc.tosca.parser.exceptions.SdcToscaParserException;
 import org.openecomp.sdc.tosca.parser.impl.FilterType;
                propertyAsObject = resolveGetInputCsarQA.getNodeTemplatePropertyAsObject(vfcs.get(0), "port_pd01_port_ip_requirements");
                assertEquals( ((ArrayList)propertyAsObject).get(1), null);
        }
+
+       @Test
+       public void testServiceNodeTemplateByCRType() {
+               List<NodeTemplate> serviceCRList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
+               assertNotNull(serviceCRList);
+               assertEquals(serviceCRList.size(), 2);
+               assertEquals(serviceCRList.get(0).getName(), "chaya best cr 1");
+               assertEquals(serviceCRList.get(0).getType(), "org.openecomp.resource.cr.ChayaBestCr");
+               assertEquals(serviceCRList.get(1).getName(), "chaya best cr 0");
+               assertEquals(serviceCRList.get(1).getType(), "org.openecomp.resource.cr.ChayaBestCr");
+       }
+
+       @Test
+       public void testGetCPOfCRNodeTemplate() {
+               NodeTemplate nodeTemplate = csarHelperServiceWithCrs.getServiceNodeTemplateByNodeName("chaya best cr 0");
+               List<NodeTemplate> crCpChildren = csarHelperServiceWithCrs.getNodeTemplateBySdcType(nodeTemplate, SdcTypes.CP);
+               assertEquals(crCpChildren.get(0).getName(), "ContrailPort 0");
+               assertEquals(crCpChildren.get(0).getMetaData().getValue("type"), SdcTypes.CP.name());
+       }
+
+       @Test
+       public void testServiceCRInstanceProps() {
+               List<NodeTemplate> serviceCrList = csarHelperServiceWithCrs.getServiceNodeTemplateBySdcType(SdcTypes.CR);
+               assertNotNull(serviceCrList);
+               NodeTemplate crTemplate = serviceCrList.get(0);
+               assertNotNull(crTemplate);
+               assertEquals(crTemplate.getPropertyValue("nf_naming").toString(), ImmutableMap.of("ecomp_generated_naming", "true").toString());
+               assertEquals(crTemplate.getPropertyValue("contrailport0_virtual_network"), "chaya");
+       }
+
+
 }