public void MoveEntry_SimpleRename_Ok() { using var test = new TestFS(TestDelta2ArchiveUrl, BaseTestFolder); DroneDB.MoveEntry(test.TestFolder, "plutone.txt", "test.txt"); var res = DroneDB.List(test.TestFolder, test.TestFolder, true); res.Should().HaveCount(11); res[8].Path.Should().Be("test.txt"); }
public void Remove_AllFiles_Ok() { using var test = new TestFS(Test1ArchiveUrl, BaseTestFolder); const string fileName = "."; var ddbPath = Path.Combine(test.TestFolder, "public", "default"); DroneDB.Remove(ddbPath, Path.Combine(ddbPath, fileName)); var res = DroneDB.List(ddbPath, ".", true); res.Should().HaveCount(0); }
public void List_AllFiles_Ok() { using var test = new TestFS(Test1ArchiveUrl, BaseTestFolder); var ddbPath = Path.Combine(test.TestFolder, "public", "default"); var res = DroneDB.List(ddbPath, Path.Combine(ddbPath, "."), true); res.Should().HaveCount(26); res = DroneDB.List(ddbPath, ddbPath, true); res.Should().HaveCount(26); }
public void List_Nonexistant_Exception() { Action act = () => DroneDB.List("invalid", ""); act.Should().Throw <DDBException>(); act = () => DroneDB.List("invalid", "wefrfwef"); act.Should().Throw <DDBException>(); act = () => DroneDB.List(null, "wefrfwef"); act.Should().Throw <DDBException>(); act = () => DroneDB.List("invalid", (string)null); act.Should().Throw <DDBException>(); }
public void List_ExistingFile_Ok() { using var test = new TestFS(Test1ArchiveUrl, BaseTestFolder); var ddbPath = Path.Combine(test.TestFolder, "public", "default"); var res = DroneDB.List(ddbPath, Path.Combine(ddbPath, "DJI_0027.JPG")); res.Should().HaveCount(1); var entry = res.First(); Entry expectedEntry = JsonConvert.DeserializeObject <Entry>( "{\"depth\":0,\"hash\":\"3157958dd4f2562c8681867dfd6ee5bf70b6e9595b3e3b4b76bbda28342569ed\",\"properties\":{\"cameraPitch\":-89.9000015258789,\"cameraRoll\":0.0,\"cameraYaw\":-131.3000030517578,\"captureTime\":1466699584000.0,\"focalLength\":3.4222222222222225,\"focalLength35\":20.0,\"height\":2250,\"make\":\"DJI\",\"model\":\"FC300S\",\"orientation\":1,\"sensor\":\"dji fc300s\",\"sensorHeight\":3.4650000000000003,\"sensorWidth\":6.16,\"width\":4000},\"mtime\":1491156087,\"path\":\"DJI_0027.JPG\",\"point_geom\":{\"crs\":{\"properties\":{\"name\":\"EPSG:4326\"},\"type\":\"name\"},\"geometry\":{\"coordinates\":[-91.99408299999999,46.84260499999999,198.5099999999999],\"type\":\"Point\"},\"properties\":{},\"type\":\"Feature\"},\"polygon_geom\":{\"crs\":{\"properties\":{\"name\":\"EPSG:4326\"},\"type\":\"name\"},\"geometry\":{\"coordinates\":[[[-91.99397836402999,46.8422402913,158.5099999999999],[-91.99357489543,46.84247729175999,158.5099999999999],[-91.99418894036,46.84296945989999,158.5099999999999],[-91.99459241001999,46.8427324573,158.5099999999999],[-91.99397836402999,46.8422402913,158.5099999999999]]],\"type\":\"Polygon\"},\"properties\":{},\"type\":\"Feature\"},\"size\":3185449,\"type\":3}"); entry.Should().BeEquivalentTo(expectedEntry); }
public void List_ExistingFileSubFolder_Ok() { using var fs = new TestFS(Test1ArchiveUrl, nameof(DroneDBTests)); const string fileName = "Sub/20200610_144436.jpg"; const int expectedDepth = 1; const int expectedSize = 8248241; var expectedType = EntryType.GeoImage; const string expectedHash = "f27ddc96daf9aeff3c026de8292681296c3e9d952b647235878c50f2b7b39e94"; var expectedModifiedTime = new DateTime(2020, 06, 10, 14, 44, 36); var expectedMeta = JsonConvert.DeserializeObject <Dictionary <string, object> >( "{\"captureTime\":1591800276004.8,\"focalLength\":4.16,\"focalLength35\":26.0,\"height\":3024,\"make\":\"samsung\",\"model\":\"SM-G950F\",\"orientation\":1,\"sensor\":\"samsung sm-g950f\",\"sensorHeight\":4.32,\"sensorWidth\":5.76,\"width\":4032}"); //const double expectedLatitude = 45.50027; //const double expectedLongitude = 10.60667; //const double expectedAltitude = 141; var ddbPath = Path.Combine(fs.TestFolder, "public", "default"); var res = DroneDB.List(ddbPath, Path.Combine(ddbPath, fileName)); res.Should().HaveCount(1); var file = res.First(); file.Path.Should().Be(fileName); // TODO: Handle different timezones file.ModifiedTime.Should().BeCloseTo(expectedModifiedTime, new TimeSpan(6, 0, 0)); file.Hash.Should().Be(expectedHash); file.Depth.Should().Be(expectedDepth); file.Size.Should().Be(expectedSize); file.Type.Should().Be(expectedType); file.Properties.Should().BeEquivalentTo(expectedMeta); file.PointGeometry.Should().NotBeNull(); //file.PointGeometry.Coordinates.Latitude.Should().BeApproximately(expectedLatitude, 0.00001); //file.PointGeometry.Coordinates.Longitude.Should().BeApproximately(expectedLongitude, 0.00001); //file.PointGeometry.Coordinates.Altitude.Should().Be(expectedAltitude); }