package alien4cloud.tosca.parser;
import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import javax.annotation.Resource;
import org.alien4cloud.tosca.catalog.ArchiveParser;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import alien4cloud.common.AlienConstants;
import alien4cloud.tosca.ArchiveParserTest;
import alien4cloud.tosca.model.ArchiveRoot;
import alien4cloud.utils.FileUtil;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:tosca/archive-parser-application-context.xml")
public class ArchiveParserAlien120Test {
private Path artifactsDirectory = Paths.get("../target/it-artifacts");
@Resource
private ArchiveParser archiveParser;
private static final String ROOT_DIRECTORY = "src/test/resources/tosca/SimpleProfil_alien120/parsing/";
private ParsingResult<ArchiveRoot> parse(String fileName) throws IOException, ParsingException {
Path source = Paths.get(ROOT_DIRECTORY, fileName);
Path target = artifactsDirectory.resolve(fileName + ".zip");
FileUtil.zip(source, target);
ParsingResult<ArchiveRoot> parsingResult = archiveParser.parse(target, AlienConstants.GLOBAL_WORKSPACE_ID);
return parsingResult;
}
@Test
public void testDataTypesVeryComplexWithDefaultError1() throws ParsingException, IOException {
ParsingResult<ArchiveRoot> parsingResult = parse("tosca-data-types-very-complex-default-error1.yml");
ArchiveParserTest.displayErrors(parsingResult);
Assert.assertEquals(2, parsingResult.getResult().getDataTypes().size());
Assert.assertEquals(1, parsingResult.getResult().getNodeTypes().size());
Assert.assertEquals(1, parsingResult.getContext().getParsingErrors().size());
}
@Test
public void testDataTypesVeryComplexWithDefaultError2() throws ParsingException, IOException {
ParsingResult<ArchiveRoot> parsingResult = parse("tosca-data-types-very-complex-default-error2.yml");
ArchiveParserTest.displayErrors(parsingResult);
Assert.assertEquals(2, parsingResult.getResult().getDataTypes().size());
Assert.assertEquals(1, parsingResult.getResult().getNodeTypes().size());
Assert.assertEquals(1, parsingResult.getContext().getParsingErrors().size());
}
@Test
public void testDataTypesVeryComplexWithDefaultError3() throws ParsingException, IOException {
ParsingResult<ArchiveRoot> parsingResult = parse("tosca-data-types-very-complex-default-error3.yml");
ArchiveParserTest.displayErrors(parsingResult);
Assert.assertEquals(2, parsingResult.getResult().getDataTypes().size());
Assert.assertEquals(1, parsingResult.getResult().getNodeTypes().size());
Assert.assertEquals(1, parsingResult.getContext().getParsingErrors().size());
}
@Test
public void testDataTypesVeryComplexWithDefaultError4() throws ParsingException, IOException {
ParsingResult<ArchiveRoot> parsingResult = parse("tosca-data-types-very-complex-default-error4.yml");
ArchiveParserTest.displayErrors(parsingResult);
Assert.assertEquals(2, parsingResult.getResult().getDataTypes().size());
Assert.assertEquals(1, parsingResult.getResult().getNodeTypes().size());
Assert.assertEquals(2, parsingResult.getContext().getParsingErrors().size());
}
}