comparison Resources/CodeGeneration/stonegentool_test.py @ 486:8e40355a172b bgo-commands-codegen

Unit tests OK for preambles, enums and structs in both TS and C++
author bgo-osimis
date Fri, 15 Feb 2019 14:30:26 +0100
parents 772516adcbf6
children f6b7f113cf27
comparison
equal deleted inserted replaced
485:772516adcbf6 486:8e40355a172b
105 def test_GenerateTypeScriptEnumeration(self): 105 def test_GenerateTypeScriptEnumeration(self):
106 fn = os.path.join(os.path.dirname(__file__), 'test', 'test1.jsonc') 106 fn = os.path.join(os.path.dirname(__file__), 'test', 'test1.jsonc')
107 obj = LoadSchema(fn) 107 obj = LoadSchema(fn)
108 (_,outputStreams,_) = ProcessSchema(obj) 108 (_,outputStreams,_) = ProcessSchema(obj)
109 109
110 tsRef = """// autogenerated by stonegentool on Fri Feb 15 07:36:51 2019 110 tsPreambleRef: str = "// autogenerated by stonegentool on Fri Feb 15 07:36:51 2019\n"
111 enum MovieType 111 tsEnumsRef: str = """enum MovieType
112 { 112 {
113 Romcom, 113 Romcom,
114 Horror, 114 Horror,
115 ScienceFiction, 115 ScienceFiction,
116 Vegetables 116 Vegetables
117 }; 117 };
118 118
119 class A 119 enum CrispType
120 {
121 SaltAndPepper,
122 CreamAndChives,
123 Paprika,
124 Barbecue
125 };
126
127 """
128
129 tsStructsRef: str = """class A
120 { 130 {
121 public Array<string> someStrings; 131 public Array<string> someStrings;
122 public Array<number> someInts2; 132 public Array<number> someInts2;
123 }; 133 };
124 134
133 public Array<B> someBs; 143 public Array<B> someBs;
134 public Array<D> ddd; 144 public Array<D> ddd;
135 }; 145 };
136 146
137 """ 147 """
138 tsRef = RemoveDateTimeLine(tsRef) 148
139 tsActual = RemoveDateTimeLine(outputStreams['ts'].getvalue()) 149 tsPreambleRefCastrated: str = RemoveDateTimeLine(tsPreambleRef)
140 150 tsPreambleCastrated: str = RemoveDateTimeLine(outputStreams.tsPreamble.getvalue())
141 self.assertEqual(tsActual,tsRef) 151 self.assertEqual(tsPreambleRefCastrated,tsPreambleCastrated)
152 self.assertEqual(tsEnumsRef,outputStreams.tsEnums.getvalue())
153 self.assertEqual(tsStructsRef,outputStreams.tsStructs.getvalue())
142 154
143 cppRef="""// autogenerated by stonegentool on Fri Feb 15 07:36:51 2019 155 cppPreambleRef: str = """// autogenerated by stonegentool on Fri Feb 15 07:36:51 2019
144 #include <cstdint> 156 #include <cstdint>
145 #include <string> 157 #include <string>
146 #include <vector> 158 #include <vector>
147 #include <map> 159 #include <map>
148 enum MovieType 160
161 """
162
163 cppEnumsRef: str = """enum MovieType
149 { 164 {
150 Romcom, 165 Romcom,
151 Horror, 166 Horror,
152 ScienceFiction, 167 ScienceFiction,
153 Vegetables 168 Vegetables
154 }; 169 };
155 170
156 struct A 171 enum CrispType
172 {
173 SaltAndPepper,
174 CreamAndChives,
175 Paprika,
176 Barbecue
177 };
178
179 """
180 cppStructsRef: str = """struct A
157 { 181 {
158 std::vector<string> someStrings; 182 std::vector<string> someStrings;
159 std::vector<int32_t> someInts2; 183 std::vector<int32_t> someInts2;
160 }; 184 };
161 185
170 std::vector<B> someBs; 194 std::vector<B> someBs;
171 std::vector<D> ddd; 195 std::vector<D> ddd;
172 }; 196 };
173 197
174 """ 198 """
175 cppRef = RemoveDateTimeLine(cppRef) 199 cppPreambleRefCastrated: str = RemoveDateTimeLine(cppPreambleRef)
176 cppActual = RemoveDateTimeLine(outputStreams['cpp'].getvalue()) 200 cppPreambleCastrated: str = RemoveDateTimeLine(outputStreams.cppPreamble.getvalue())
177 201 self.assertEqual(cppPreambleRefCastrated,cppPreambleCastrated)
178 self.assertEqual(cppActual,cppRef) 202 self.assertEqual(cppEnumsRef,outputStreams.cppEnums.getvalue())
179 pass 203 self.assertEqual(cppStructsRef,outputStreams.cppStructs.getvalue())
180 204
181 def test_GenerateCppEnumeration(self): 205 def test_GenerateCppEnumeration(self):
182 pass 206 pass
183 207
184 def test_GenerateTypeScriptClasses(self): 208 def test_GenerateTypeScriptClasses(self):
206 # with self.assertRaises(TypeError): 230 # with self.assertRaises(TypeError):
207 # s.split(2) 231 # s.split(2)
208 232
209 if __name__ == '__main__': 233 if __name__ == '__main__':
210 unittest.main() 234 unittest.main()
235