protected override void VisitBatch(BatchBuilder item) { CreateBatchOperation(); foreach (var command in item.Commands()) { command.Accept(this); } base.VisitBatch(item); }
public unsafe void should_create_batch_with_correct_values() { var fakeOne1 = new TestStructComponentOne { Data = 10 }; var fakeOne2 = new TestStructComponentOne { Data = 20 }; var fakeOnes = new[] { fakeOne1, fakeOne2 }; var fakeTwo1 = new TestStructComponentTwo { Data = 1.5f }; var fakeTwo2 = new TestStructComponentTwo { Data = 2.6f }; var fakeTwos = new[] { fakeTwo1, fakeTwo2 }; var mockComponentDatabase = Substitute.For <IComponentDatabase>(); mockComponentDatabase.GetComponents <TestStructComponentOne>(Arg.Any <int>()).Returns(fakeOnes); mockComponentDatabase.GetComponents <TestStructComponentTwo>(Arg.Any <int>()).Returns(fakeTwos); var mockTypeLookup = Substitute.For <IComponentTypeLookup>(); mockTypeLookup.GetComponentType(typeof(TestStructComponentOne)).Returns(0); mockTypeLookup.GetComponentType(typeof(TestStructComponentTwo)).Returns(1); var fakeEntity1 = Substitute.For <IEntity>(); fakeEntity1.Id.Returns(1); fakeEntity1.ComponentAllocations.Returns(new[] { 0, 0 }); var fakeEntity2 = Substitute.For <IEntity>(); fakeEntity2.Id.Returns(2); fakeEntity2.ComponentAllocations.Returns(new[] { 1, 1 }); var fakeEntities = new [] { fakeEntity1, fakeEntity2 }; var batchBuilder = new BatchBuilder <TestStructComponentOne, TestStructComponentTwo>(mockComponentDatabase, mockTypeLookup); var batch = batchBuilder.Build(fakeEntities); var batches = batch.Batches; Assert.Equal(fakeEntities.Length, batches.Length); Assert.Equal(fakeEntities[0].Id, batches[0].EntityId); Assert.Equal(fakeOne1.Data, (*batches[0].Component1).Data); Assert.Equal(fakeTwo1.Data, (*batches[0].Component2).Data); Assert.Equal(fakeEntities[1].Id, batches[1].EntityId); Assert.Equal(fakeOne2.Data, (*batches[1].Component1).Data); Assert.Equal(fakeTwo2.Data, (*batches[1].Component2).Data); }
public void CreateTable() { var batchJob = new BatchJob(); var builder = new BatchBuilder(batchJob) .Description("User") .TargetTable("dbo.User") .CanInsert() .CanUpdate() .Field(f => f .Name("EmailAddress") .DisplayName("Email Address") .DataType <string>() .IsKey() ) .Field(f => f .Name("FirstName") .DisplayName("First Name") .DataType <string>() ) .Field(f => f .Name("LastName") .DisplayName("Last Name") .DataType <string>() ) .Field(f => f .Name("IsValidated") .DisplayName("Validated") .DataType <bool>() ) .Field(f => f .Name("LockoutCount") .DisplayName("Lockout Count") .DataType <int?>() .CanBeNull() ) .Field(f => f .Name("Updated") .DisplayName("Updated") .DataType <DateTimeOffset>() .Default(FieldDefault.CurrentDate) ); batchJob.Should().NotBeNull(); batchJob.Fields.Count.Should().Be(6); batchJob.FileName = "Testing.csv"; builder.Field("EmailAddress", f => f.Index(0)); builder.Field("IsValidated", f => f.Index(1)); builder.Field("LastName", f => f.Index(2)); builder.Field("FirstName", f => f.Index(3)); builder.Field("LockoutCount", f => f.Index(4)); batchJob.Data = new[] { new[] { "email", "validated", "last", "first", "lockout" }, new[] { "*****@*****.**", "true", "last1", "first1", "" }, new[] { "*****@*****.**", "false", "", "first2", "" }, new[] { "*****@*****.**", "", "last3", "first3", "2" }, }; var batchFactory = new BatchFactory(new[] { new BatchValidator() }, null); var batchProcessor = new BatchProcessor(NullLogger <BatchProcessor> .Instance, batchFactory, null); batchProcessor.Should().NotBeNull(); var dataTable = batchProcessor.CreateTable(batchJob); dataTable.Should().NotBeNull(); dataTable.Columns.Count.Should().Be(6); dataTable.Columns[0].ColumnName.Should().Be("EmailAddress"); dataTable.Columns[0].DataType.Should().Be <string>(); dataTable.Columns[1].ColumnName.Should().Be("FirstName"); dataTable.Columns[1].DataType.Should().Be <string>(); dataTable.Columns[2].ColumnName.Should().Be("LastName"); dataTable.Columns[2].DataType.Should().Be <string>(); dataTable.Columns[3].ColumnName.Should().Be("IsValidated"); dataTable.Columns[3].DataType.Should().Be <bool>(); dataTable.Columns[4].ColumnName.Should().Be("LockoutCount"); dataTable.Columns[4].DataType.Should().Be <int>(); dataTable.Rows.Count.Should().Be(3); dataTable.Rows[0][0].Should().Be("*****@*****.**"); dataTable.Rows[0][1].Should().Be("first1"); dataTable.Rows[0][2].Should().Be("last1"); dataTable.Rows[0][3].Should().Be(true); dataTable.Rows[0][4].Should().Be(DBNull.Value); dataTable.Rows[1][0].Should().Be("*****@*****.**"); dataTable.Rows[1][1].Should().Be("first2"); dataTable.Rows[1][2].Should().Be(""); dataTable.Rows[1][3].Should().Be(false); dataTable.Rows[1][4].Should().Be(DBNull.Value); dataTable.Rows[2][0].Should().Be("*****@*****.**"); dataTable.Rows[2][1].Should().Be("first3"); dataTable.Rows[2][2].Should().Be("last3"); dataTable.Rows[2][3].Should().Be(false); dataTable.Rows[2][4].Should().Be(2); }
protected override void VisitBatch(BatchBuilder item) { CreateBatchOperation(); foreach (var command in item.Commands()) { command.Accept(this); } base.VisitBatch(item); }