content: package alien4cloud.ui.form;
  
  import java.io.IOException;
  import java.nio.file.Paths;
  import java.util.Map;
  
  import org.junit.Before;
  import org.junit.Test;
  
  import alien4cloud.rest.utils.JsonUtil;
  import alien4cloud.test.utils.YamlJsonAssert;
  import alien4cloud.test.utils.YamlJsonAssert.DocumentType;
  import org.alien4cloud.tosca.model.definitions.PropertyDefinition;
  import alien4cloud.utils.FileUtil;
  
  public class FormDescriptorTest {
  
      private PojoFormDescriptorGenerator generator = new PojoFormDescriptorGenerator();
  
      @Before
      public void setUp() throws Exception {
          generator.setPropertyDefinitionConverter(new PropertyDefinitionConverter());
      }
  
      @Test
      public void testPropertyDefinition() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(PropertyDefinition.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/PropertyDefinition.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  
      @Test
      public void testAllPossibleManagedTypes() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(FormExampleObject.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/FormExampleObject.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  
      @Test
      public void testFormPropertiesAnnotation() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(FormPropertiesExampleObject.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/FormPropertiesExampleObject.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  
      @Test
      public void testTypeExtendBaseClass() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(FormExtendBaseClassExampleObject.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/FormExtendBaseClassExampleObject.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  
      @Test
      public void testSpecificType() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(FormSpecificTypeExampleObject.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/FormSpecificTypeExampleObject.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  
      @Test
      public void testToscaType() throws IOException {
          Map<String, Object> metaModel = generator.generateDescriptor(FormToscaTypeExampleObject.class);
          String actual = JsonUtil.toString(metaModel);
          String expected = FileUtil.readTextFile(Paths.get("./src/test/resources/alien/ui/form/FormToscaTypeExampleObject.json"));
          YamlJsonAssert.assertEquals(expected, actual, DocumentType.JSON);
      }
  }
  