1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
package org.onap.sdc.impl;
import org.testng.annotations.Test;
import static org.testng.Assert.*;
import java.io.File;
import org.onap.sdc.tosca.parser.exceptions.SdcToscaParserException;
import org.onap.sdc.toscaparser.api.utils.JToscaErrorCodes;
public class ToscaParserErrorHandlingTest extends SdcToscaParserBasicTest {
@Test
public void testMissingMetadata(){
String csarPath = "csars/service-missing-meta-file.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
@Test
public void testInvalidYamlContentMeta(){
String csarPath = "csars/service-invalid-yaml-content-meta.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
@Test
public void testEntryDefinitionNotDefined(){
String csarPath = "csars/service-entry-definition-not-defined.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
@Test
public void testMissingEntryDefinitionFile(){
String csarPath = "csars/service-missing-entry-definition.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
//@Test - PA - there are currently no critical erros in JTosca
public void tesValidationError(){
String csarPath = "csars/service-invalid-input-args.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
@Test
public void testInValidMinConformanceLevelError(){
String csarPath = "csars/service-invalid-conformence-level.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0003");
}
@Test
public void testIgnoreMaxConformanceLevelNoError(){
String csarPath = "csars/service-max-conformence-level.csar";
//TODO: Currently, the conformentce level of the csar for this test is 99 (hard coded). Consider to add ability to replace the configuration in run time.
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
assertNull(captureThrowable);
}
@Test
public void testVerifyConformanceLevelVersion9(){
String csarPath = "csars/service-Servicetosca9-csar.csar";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
assertNull(captureThrowable);
}
@Test
public void testFileNotFound(){
Throwable captureThrowable = captureThrowable("csars/XXX.csar");
testThrowable(captureThrowable, "TP0001");
}
@Test
public void testInvalidCsarFormat(){
String csarPath = "csars/csar-invalid-zip.zip";
String fileLocationString = ToscaParserErrorHandlingTest.class.getClassLoader().getResource(csarPath).getFile();
File file = new File(fileLocationString);
Throwable captureThrowable = captureThrowable(file.getAbsolutePath());
testThrowable(captureThrowable, "TP0002");
}
private static void testThrowable(Throwable captureThrowable, String expectedCode) {
assertNotNull(captureThrowable);
assertTrue(captureThrowable instanceof SdcToscaParserException, "Error thrown is of type "+captureThrowable.getClass().getSimpleName());
assertEquals(((SdcToscaParserException)captureThrowable).getCode(), expectedCode);
}
public static Throwable captureThrowable(String csarPath) {
Throwable result = null;
try {
factory.getSdcCsarHelper(csarPath);
} catch( Throwable throwable ) {
result = throwable;
}
return result;
}
}
|