using Aspose.Gis.Rendering; using GitConverter.Lib.Models; using static System.Runtime.InteropServices.JavaScript.JSType; namespace GitConverter.TestsApp.Models { /// /// Unit tests for FileExtension enum and helpers. /// /// /// These tests verify the canonical mapping between enum members and their dot-prefixed file extensions, /// and ensure option-string -> enum mapping is case-insensitive and stable. /// Keep tests small and deterministic: when adding new enum members update these tests accordingly. /// public class FileExtensionTests { [Fact(DisplayName = "ToDotExtension_ReturnsExpected")] public void ToDotExtension_ReturnsExpected() { Assert.Equal(".csv", FileExtension.Csv.ToDotExtension()); Assert.Equal(".json", FileExtension.EsriJson.ToDotExtension()); Assert.Equal(".gdb", FileExtension.FileGdb.ToDotExtension()); Assert.Equal(".json", FileExtension.GeoJson.ToDotExtension()); Assert.Equal(".json", FileExtension.GeoJsonSeq.ToDotExtension()); Assert.Equal(".gpkg", FileExtension.GeoPackage.ToDotExtension()); Assert.Equal(".gml", FileExtension.Gml.ToDotExtension()); Assert.Equal(".gpx", FileExtension.Gpx.ToDotExtension()); Assert.Equal(".kml", FileExtension.Kml.ToDotExtension()); Assert.Equal(".kmz", FileExtension.Kmz.ToDotExtension()); Assert.Equal(".mif", FileExtension.MapInfoInterchange.ToDotExtension()); Assert.Equal(".tab", FileExtension.MapInfoTab.ToDotExtension()); Assert.Equal(".osm", FileExtension.Osm.ToDotExtension()); Assert.Equal(".shp", FileExtension.Shapefile.ToDotExtension()); Assert.Equal(".json", FileExtension.TopoJson.ToDotExtension()); } [Theory(DisplayName = "FromOption_RecognizesOptions_CaseInsensitive")] [InlineData("csv", FileExtension.Csv)] [InlineData("CSV", FileExtension.Csv)] [InlineData("esrijson", FileExtension.EsriJson)] [InlineData("Esrijson", FileExtension.EsriJson)] [InlineData("gdb", FileExtension.FileGdb)] [InlineData("Gdb", FileExtension.FileGdb)] [InlineData("gdbtable", FileExtension.FileGdb)] [InlineData("Gdbtable", FileExtension.FileGdb)] [InlineData("gdbtablx", FileExtension.FileGdb)] [InlineData("Gdbtablx", FileExtension.FileGdb)] [InlineData("geojson", FileExtension.GeoJson)] [InlineData("GeoJson", FileExtension.GeoJson)] [InlineData("jsonl", FileExtension.GeoJsonSeq)] [InlineData("JSONL", FileExtension.GeoJsonSeq)] [InlineData("ndjson", FileExtension.GeoJsonSeq)] [InlineData("NDJSON", FileExtension.GeoJsonSeq)] [InlineData("gpkg", FileExtension.GeoPackage)] [InlineData("Gpkg", FileExtension.GeoPackage)] [InlineData("gml", FileExtension.Gml)] [InlineData("Gml", FileExtension.Gml)] [InlineData("gpx", FileExtension.Gpx)] [InlineData("Gpx", FileExtension.Gpx)] [InlineData("kml", FileExtension.Kml)] [InlineData("Kml", FileExtension.Kml)] [InlineData("kmz", FileExtension.Kmz)] [InlineData("Kmz", FileExtension.Kmz)] [InlineData("mif", FileExtension.MapInfoInterchange)] [InlineData("Mif", FileExtension.MapInfoInterchange)] [InlineData("mid", FileExtension.MapInfoInterchange)] [InlineData("Mid", FileExtension.MapInfoInterchange)] [InlineData("tab", FileExtension.MapInfoTab)] [InlineData("Tab", FileExtension.MapInfoTab)] [InlineData("dat", FileExtension.MapInfoTab)] [InlineData("Dat", FileExtension.MapInfoTab)] [InlineData("map", FileExtension.MapInfoTab)] [InlineData("Map", FileExtension.MapInfoTab)] [InlineData("id", FileExtension.MapInfoTab)] [InlineData("Id", FileExtension.MapInfoTab)] [InlineData("osm", FileExtension.Osm)] [InlineData("Osm", FileExtension.Osm)] [InlineData("shp", FileExtension.Shapefile)] [InlineData("Shp", FileExtension.Shapefile)] [InlineData("shx", FileExtension.Shapefile)] [InlineData("Shx", FileExtension.Shapefile)] [InlineData("dbf", FileExtension.Shapefile)] [InlineData("Dbf", FileExtension.Shapefile)] [InlineData("topojson", FileExtension.TopoJson)] [InlineData("TopoJson", FileExtension.TopoJson)] public void FromOption_RecognizesOptions(string option, FileExtension expected) { var fe = FileExtensionHelpers.FromOption(option); Assert.True(fe.HasValue, $"Expected FromOption to recognize '{option}'"); Assert.Equal(expected, fe.Value); } [Fact(DisplayName = "FromOption_ReturnsNull_ForUnknown")] public void FromOption_ReturnsNull_ForUnknown() { var fe = FileExtensionHelpers.FromOption("unknown-format-xyz"); Assert.False(fe.HasValue); } } }