public void GenerateQueryWithMapToSelfOnInterface() { var Mappings = new MappingSource(new IMapping[] { new MapPropertiesWithMapOnInterfaceMapping(), new IMapPropertiesInterfaceWithMapMapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); var MapProperty = Mappings.Mappings[typeof(IMapPropertiesInterfaceWithMap)].MapProperties.First(); MapProperty.Setup(Mappings); MapProperty.SetColumnInfo(Mappings); var TestObject = new SavePropertiesQuery <MapPropertiesWithMapOnInterface>(Mappings, ObjectPool); var Result = TestObject.GenerateQueries(new MapPropertiesWithMapOnInterface { ID = 10, BoolValue = true, MappedClass = new MapPropertiesWithMapOnInterface { ID = 1 } }, MapProperty)[0]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(2, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[1].InternalValue); Assert.Equal(1, Result.Parameters[0].InternalValue); Assert.Equal("ID", Result.Parameters[1].ID); Assert.Equal("IMapPropertiesInterfaceWithMap_MappedClass_ID_", Result.Parameters[0].ID); Assert.Equal("UPDATE [dbo].[IMapPropertiesInterfaceWithMap_] SET [dbo].[IMapPropertiesInterfaceWithMap_].[IMapPropertiesInterfaceWithMap_MappedClass_ID_] = @IMapPropertiesInterfaceWithMap_MappedClass_ID_ FROM [dbo].[IMapPropertiesInterfaceWithMap_] WHERE [dbo].[IMapPropertiesInterfaceWithMap_].[ID_] = @ID;", Result.QueryString); Assert.Equal(QueryType.JoinsSave, Result.QueryType); }
public void GenerateQueryWithManyToOneManyProperties() { var Mappings = new MappingSource(new IMapping[] { new ManyToOneManyPropertiesMapping(), new ManyToOneOnePropertiesMapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); var ManyToOneManyProperty = Mappings.Mappings[typeof(ManyToOneManyProperties)].ManyToOneProperties.First(); var TempDataModel = new Inflatable.Schema.DataModel(Mappings, Configuration, Logger, DataModeler, Sherlock, Helper); ManyToOneManyProperty.Setup(Mappings, TempDataModel.SourceSpec); ManyToOneManyProperty.SetColumnInfo(Mappings); var TestObject = new SavePropertiesQuery <ManyToOneManyProperties>(Mappings, ObjectPool); var TempManyToOneMany = new ManyToOneManyProperties { ID = 10, BoolValue = true }; TempManyToOneMany.ManyToOneClass.Add(new ManyToOneOneProperties { ID = 1 }); TempManyToOneMany.ManyToOneClass.Add(new ManyToOneOneProperties { ID = 2 }); var Result = TestObject.GenerateQueries(TempManyToOneMany, ManyToOneManyProperty)[0]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(2, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[0].InternalValue); Assert.Equal(1, Result.Parameters[1].InternalValue); Assert.Equal("ManyToOneManyProperties_ID_", Result.Parameters[0].ID); Assert.Equal("ID_", Result.Parameters[1].ID); Assert.Equal("UPDATE [dbo].[ManyToOneOneProperties_] SET [dbo].[ManyToOneOneProperties_].[ManyToOneManyProperties_ID_] = @ManyToOneManyProperties_ID_ FROM [dbo].[ManyToOneOneProperties_] WHERE [dbo].[ManyToOneOneProperties_].[ID_] = @ID_;", Result.QueryString); Assert.Equal(QueryType.JoinsSave, Result.QueryType); Result = TestObject.GenerateQueries(TempManyToOneMany, ManyToOneManyProperty)[1]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(2, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[0].InternalValue); Assert.Equal(2, Result.Parameters[1].InternalValue); Assert.Equal("ManyToOneManyProperties_ID_", Result.Parameters[0].ID); Assert.Equal("ID_", Result.Parameters[1].ID); Assert.Equal("UPDATE [dbo].[ManyToOneOneProperties_] SET [dbo].[ManyToOneOneProperties_].[ManyToOneManyProperties_ID_] = @ManyToOneManyProperties_ID_ FROM [dbo].[ManyToOneOneProperties_] WHERE [dbo].[ManyToOneOneProperties_].[ID_] = @ID_;", Result.QueryString); Assert.Equal(QueryType.JoinsSave, Result.QueryType); }
public void Creation() { var Mappings = new MappingSource(new IMapping[] { new BaseClass1Mapping(), new ConcreteClass1Mapping(), new ConcreteClass2Mapping(), new ConcreteClass3Mapping(), new IInterface1Mapping(), new IInterface2Mapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); var TestObject = new SavePropertiesQuery <ConcreteClass1>(Mappings, ObjectPool); Assert.Equal(typeof(ConcreteClass1), TestObject.AssociatedType); Assert.Same(Mappings, TestObject.MappingInformation); Assert.Equal(QueryType.JoinsSave, TestObject.QueryType); }
public void GenerateQueryWithManyToManyProperties() { var Mappings = new MappingSource(new IMapping[] { new AllReferencesAndIDMappingWithDatabase(), new ManyToManyPropertiesMapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); var ManyToManyProperty = Mappings.Mappings[typeof(ManyToManyProperties)].ManyToManyProperties.First(); var TempDataModel = new Inflatable.Schema.DataModel(Mappings, Configuration, Logger, DataModeler, Sherlock, Helper); ManyToManyProperty.Setup(Mappings, TempDataModel.SourceSpec); var TestObject = new SavePropertiesQuery <ManyToManyProperties>(Mappings, ObjectPool); var TempManyToMany = new ManyToManyProperties { ID = 10, BoolValue = true }; TempManyToMany.ManyToManyClass.Add(new AllReferencesAndID { ID = 1 }); TempManyToMany.ManyToManyClass.Add(new AllReferencesAndID { ID = 2 }); var Result = TestObject.GenerateQueries(TempManyToMany, ManyToManyProperty)[0]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(2, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[0].InternalValue); Assert.Equal(1, Result.Parameters[1].InternalValue); Assert.Equal("AllReferencesAndID_ID_", Result.Parameters[1].ID); Assert.Equal("ManyToManyProperties_ID_", Result.Parameters[0].ID); Assert.Equal("INSERT INTO [dbo].[AllReferencesAndID_ManyToManyProperties]([dbo].[AllReferencesAndID_ManyToManyProperties].[AllReferencesAndID_ID_], [dbo].[AllReferencesAndID_ManyToManyProperties].[ManyToManyProperties_ID_]) VALUES (@AllReferencesAndID_ID_, @ManyToManyProperties_ID_);", Result.QueryString); Assert.Equal(QueryType.JoinsSave, Result.QueryType); }
public void GenerateDeclarations() { var Mappings = new MappingSource(new IMapping[] { new BaseClass1Mapping(), new ConcreteClass1Mapping(), new ConcreteClass2Mapping(), new ConcreteClass3Mapping(), new IInterface1Mapping(), new IInterface2Mapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); var TestObject = new SavePropertiesQuery <ConcreteClass1>(Mappings, ObjectPool); var Result = TestObject.GenerateDeclarations(); Assert.Equal(CommandType.Text, Result[0].DatabaseCommandType); Assert.Empty(Result[0].Parameters); Assert.Equal("", Result[0].QueryString); Assert.Equal(QueryType.JoinsSave, Result[0].QueryType); }