22using FluentAssertions ;
33using FluentCommand . SqlServer . Tests ;
44using Microsoft . Extensions . Logging . Abstractions ;
5+ using System . IO ;
56using Xunit ;
67using Xunit . Abstractions ;
78
@@ -26,4 +27,38 @@ public void Generate()
2627 result . Should ( ) . BeTrue ( ) ;
2728 }
2829
30+ [ Fact ]
31+ public void GenerateSpatial ( )
32+ {
33+ var generatorOptions = new GeneratorOptions ( ) ;
34+ generatorOptions . Database . ConnectionString = Database . ConnectionString ;
35+
36+ var generator = new CodeGenerator ( NullLoggerFactory . Instance ) ;
37+ var result = generator . Generate ( generatorOptions ) ;
38+
39+ result . Should ( ) . BeTrue ( ) ;
40+
41+ const string spatialTableName = "CitiesSpatial" ;
42+
43+ var citiesSpatialEntityFile = Path . Combine ( generatorOptions . Data . Entity . Directory , spatialTableName + ".cs" ) ;
44+ var citiesSpatialMappingFile = Path . Combine ( generatorOptions . Data . Mapping . Directory , spatialTableName + "Map.cs" ) ;
45+
46+ var citiesSpatialEntityContent = File . ReadAllText ( citiesSpatialEntityFile ) ;
47+ var citiesSpatialMappingContent = File . ReadAllText ( citiesSpatialMappingFile ) ;
48+
49+ citiesSpatialEntityContent . Contains ( "public NetTopologySuite.Geometries.Geometry GeometryField { get; set; }" ) . Should ( ) . BeTrue ( ) ;
50+ citiesSpatialEntityContent . Contains ( "public NetTopologySuite.Geometries.Geometry GeographyField { get; set; }" ) . Should ( ) . BeTrue ( ) ;
51+
52+ citiesSpatialMappingContent . Contains ( "builder.Property(t => t.GeometryField)" + System . Environment . NewLine +
53+ " .IsRequired()" + System . Environment . NewLine +
54+ " .HasColumnName(\" GeometryField\" )" + System . Environment . NewLine +
55+ " .HasColumnType(\" geometry\" );" ) . Should ( ) . BeTrue ( ) ;
56+
57+ citiesSpatialMappingContent . Contains ( "builder.Property(t => t.GeographyField)" + System . Environment . NewLine +
58+ " .IsRequired()" + System . Environment . NewLine +
59+ " .HasColumnName(\" GeographyField\" )" + System . Environment . NewLine +
60+ " .HasColumnType(\" geography\" );" ) . Should ( ) . BeTrue ( ) ;
61+
62+ }
63+
2964}
0 commit comments