public void GenerateQuery() { 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 InsertQuery <ConcreteClass1>(Mappings, ObjectPool); var Result = TestObject.GenerateQueries(new ConcreteClass1 { ID = 10, BaseClassValue1 = 1, Value1 = 2 })[0]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(3, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[0].InternalValue); Assert.Equal("ID", Result.Parameters[0].ID); Assert.Equal(1, Result.Parameters[2].InternalValue); Assert.Equal("BaseClassValue1", Result.Parameters[2].ID); Assert.Equal(2, Result.Parameters[1].InternalValue); Assert.Equal("Value1", Result.Parameters[1].ID); Assert.Equal("INSERT INTO [dbo].[IInterface1_] DEFAULT VALUES;\r\nSET @IInterface1_ID_Temp=SCOPE_IDENTITY();\r\nSELECT @IInterface1_ID_Temp AS [ID];\r\n\r\nINSERT INTO [dbo].[BaseClass1_]([dbo].[BaseClass1_].[BaseClassValue1_],[dbo].[BaseClass1_].[IInterface1_ID_]) VALUES (@BaseClassValue1,@IInterface1_ID_Temp);\r\nSET @BaseClass1_ID_Temp=SCOPE_IDENTITY();\r\n\r\nINSERT INTO [dbo].[ConcreteClass1_]([dbo].[ConcreteClass1_].[Value1_],[dbo].[ConcreteClass1_].[BaseClass1_ID_]) VALUES (@Value1,@BaseClass1_ID_Temp);\r\n", Result.QueryString); Assert.Equal(QueryType.Insert, Result.QueryType); }
public void GenerateQueryWithMapPropertiesWithValue() { var Mappings = new MappingSource(new IMapping[] { new AllReferencesAndIDMappingWithDatabase(), new MapPropertiesMapping() }, new MockDatabaseMapping(), new QueryProviderManager(new[] { new SQLServerQueryProvider(Configuration, ObjectPool) }, Logger), Canister.Builder.Bootstrapper.Resolve <ILogger>(), ObjectPool); Mappings.Mappings[typeof(MapProperties)].MapProperties.First().Setup(Mappings); var TestObject = new InsertQuery <MapProperties>(Mappings, ObjectPool); var Result = TestObject.GenerateQueries(new MapProperties { ID = 10, BoolValue = true, MappedClass = new AllReferencesAndID { ID = 1 } })[0]; Assert.Equal(CommandType.Text, Result.DatabaseCommandType); Assert.Equal(2, Result.Parameters.Length); Assert.Equal(10, Result.Parameters[0].InternalValue); Assert.Equal("ID", Result.Parameters[0].ID); Assert.True((bool)Result.Parameters[1].InternalValue); Assert.Equal("BoolValue", Result.Parameters[1].ID); Assert.Equal("INSERT INTO [dbo].[MapProperties_]([dbo].[MapProperties_].[BoolValue_]) VALUES (@BoolValue);\r\nSET @MapProperties_ID_Temp=SCOPE_IDENTITY();\r\nSELECT @MapProperties_ID_Temp AS [ID];\r\n", Result.QueryString); Assert.Equal(QueryType.Insert, Result.QueryType); }