| 179 | // --------------------------------------------------------------------------- |
| 180 | |
| 181 | TEST(defmodel, basic) { |
| 182 | EXPECT_THROW(MasterFile::parse("foo"), ParsingException); |
| 183 | EXPECT_THROW(MasterFile::parse("null"), ParsingException); |
| 184 | EXPECT_THROW(MasterFile::parse("{}"), ParsingException); |
| 185 | |
| 186 | const auto jMinValid(getMinValidContent()); |
| 187 | { |
| 188 | auto mf = MasterFile::parse(jMinValid.dump()); |
| 189 | EXPECT_EQ(mf->fileType(), "GeoTIFF"); |
| 190 | EXPECT_EQ(mf->formatVersion(), "1.0"); |
| 191 | EXPECT_EQ(mf->sourceCRS(), "EPSG:4959"); |
| 192 | EXPECT_EQ(mf->targetCRS(), "EPSG:7907"); |
| 193 | EXPECT_EQ(mf->definitionCRS(), "EPSG:4959"); |
| 194 | EXPECT_EQ(mf->extent().minx(), modelMinX); |
| 195 | EXPECT_EQ(mf->extent().miny(), modelMinY); |
| 196 | EXPECT_EQ(mf->extent().maxx(), modelMaxX); |
| 197 | EXPECT_EQ(mf->extent().maxy(), modelMaxY); |
| 198 | EXPECT_EQ(mf->timeExtent().first.toString(), "1900-01-01T00:00:00Z"); |
| 199 | EXPECT_EQ(mf->timeExtent().last.toString(), "2050-01-01T00:00:00Z"); |
| 200 | } |
| 201 | |
| 202 | // Check that removing one of each required key causes an exception |
| 203 | for (const auto &kv : jMinValid.items()) { |
| 204 | json jcopy(jMinValid); |
| 205 | jcopy.erase(kv.key()); |
| 206 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 207 | } |
| 208 | |
| 209 | { |
| 210 | json jcopy(jMinValid); |
| 211 | jcopy["definition_crs"] = "EPSG:4326"; |
| 212 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 213 | } |
| 214 | |
| 215 | { |
| 216 | json jcopy(jMinValid); |
| 217 | jcopy["file_type"] = 1; |
| 218 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 219 | } |
| 220 | |
| 221 | { |
| 222 | json jcopy(jMinValid); |
| 223 | jcopy["extent"].erase("type"); |
| 224 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 225 | } |
| 226 | |
| 227 | { |
| 228 | json jcopy(jMinValid); |
| 229 | jcopy["extent"].erase("parameters"); |
| 230 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 231 | } |
| 232 | |
| 233 | { |
| 234 | json jcopy(jMinValid); |
| 235 | jcopy["extent"]["parameters"].clear(); |
| 236 | EXPECT_THROW(MasterFile::parse(jcopy.dump()), ParsingException); |
| 237 | } |
| 238 |
nothing calls this directly
no test coverage detected