public async Task CsvFileBuilder_ShouldResultInCorrectFormat() { var record = new FooRecord { SomeField = "TEST", AnotherField = "TEST2", Done = true }; var record2 = new FooRecord { SomeField = "TEST3", AnotherField = "TEST4", Done = false }; var records = new List <FooRecord>(); records.Add(record); records.Add(record2); var fileMaps = new List <ClassMap>(); fileMaps.Add(new FooRecordMap()); var sut = new CsvFileBuilder(fileMaps); // act var bytes = await sut.BuildFileAsync <FooRecord>(records); // assert var sr = new StringReader(Encoding.UTF8.GetString(bytes)); var line1 = sr.ReadLine(); var line2 = sr.ReadLine(); var line3 = sr.ReadLine(); line1.Should().Be("SomeField,AnotherField,Done"); line2.Should().Be("TEST,TEST2,Yes"); line3.Should().Be("TEST3,TEST4,No"); }
public static async Task SeedSampleDataAsync(ApplicationDbContext context) { // Seed, if necessary if (!context.TodoLists.Any()) { context.TodoLists.Add(new TodoList { Title = "Shopping", Colour = Colour.Blue, Items = { new TodoItem { Title = "Apples", Done = true, Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Milk", Done = true, Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Bread", Done = true, Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Toilet paper", Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Pasta", Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Tissues", Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Tuna", Status = Domain.Common.SoftDeleteStatus.Active }, new TodoItem { Title = "Water", Status = Domain.Common.SoftDeleteStatus.Active } } }); } if (!context.Airports.Any()) { // In-Memory DB does NOT support transacitons!! context.Database.BeginTransaction(); context.Database.ExecuteSqlRaw($"SET IDENTITY_INSERT Airport ON;"); try { var location = new Uri(Assembly.GetEntryAssembly().GetName().CodeBase); var directoryInfo = new FileInfo(location.AbsolutePath).Directory.FullName; string filePath = directoryInfo + $@"\Persistence\ImportDataFiles\ImportAirportsData.csv"; var entries = (List <Airport>)CsvFileBuilder.ReadInCSV <Airport>(filePath); if (entries.Count() > 0) { context.Airports.AddRange(entries); await context.SaveChangesAsync(); context.Database.CommitTransaction(); } } catch (Exception) { context.Database.RollbackTransaction(); throw; } finally { context.Database.BeginTransaction(); context.Database.ExecuteSqlInterpolated($"SET IDENTITY_INSERT Airport OFF;"); context.Database.CommitTransaction(); } } }