public override bool CompareTargetDataToDb(string key, string fileName = null, Table tableData = null, TestDataResultOperationType operationType = default) { var featureTestData = GenerateDataFromTable(tableData); var fileTestData = GenerateDataFromFile(fileName, key); var allBreaks = _breakRepository.GetAll().ToList(); switch (operationType) { case TestDataResultOperationType.Add: { featureTestData.AddRange(fileTestData); if (allBreaks.Count != featureTestData.Count) { return(false); } foreach (var entity in featureTestData) { if (allBreaks.Count(c => c.ExternalBreakRef == entity.ExternalBreakRef) != 1) { return(false); } var storedBreak = allBreaks.FirstOrDefault(c => c.ExternalBreakRef == entity.ExternalBreakRef); if (!CompareBreak(entity, storedBreak)) { return(false); } } var resultSchedules = TestDataImporter.GetDataFromFile <Schedule>(fileName, "Schedules").ToList(); var allSchedules = _scheduleRepository.GetAll().ToList(); if (allSchedules.Count != resultSchedules.Count) { return(false); } foreach (var schedule in resultSchedules) { var storedSchedule = allSchedules.FirstOrDefault(c => c.SalesArea == schedule.SalesArea && c.Date == schedule.Date); var storedRefs = storedSchedule.Breaks.Select(b => b.ExternalBreakRef).OrderBy(b => b); var targetRefs = schedule.Breaks.Select(b => b.ExternalBreakRef).OrderBy(b => b); if (!storedRefs.SequenceEqual(targetRefs)) { return(false); } } var resultSpots = TestDataImporter.GetDataFromFile <Schedule>(fileName, "Spots").ToList(); var allSpots = _spotRepository.GetAll(); return(allSpots.Count() == resultSpots.Count); } default: return(false); } }
private static void VerifyRoundtripsAsExpected(OdbcDriver driver) { /* * Reasons this test might fail: * 1. You need to execute SqlBulkCopy.sql (in the same directory as this test) to create the test database. * 2. You need to update the connection string to specify the location of your instance of the test database. * 3. The particular driver is not installed on your PC. */ const string connectionString = "Server=WORKSTATION\\SQL2012;Database=SqlBulkCopy;Trusted_Connection=yes;"; const string tableName = "SqlBulkCopyTest"; List<IBulkCopyBoundColumn> columns; var data = TestData.GetSampleData(); BulkCopy.Driver = driver; BulkCopy.Trace = true; try { using (var sut = new BulkCopy()) { sut.LoginTimeout = 2; try { sut.Connect(string.Concat(sut.DriverOptionString, ";", connectionString)); } catch (Exception ex) { const string message = "Please refer to this test for possible solutions." + "\r\n\r\nTesting: {0}." + "\r\n\r\nODBC exception text: {1}."; Assert.Fail(message, sut.DriverOptionString, ex.Message); } sut.ConnectionTimeout = 2; sut.ExecuteDirect("TRUNCATE TABLE SqlBulkCopyTest;"); sut.Initialize(tableName); var importer = new TestDataImporter(sut); columns = sut.Columns .Where(c => c.Index > 0) .Cast<IBulkCopyBoundColumn>() .ToList(); LoadData(importer, data); } } finally { BulkCopy.Trace = false; } List<object[]> rows; using (var cn = new SqlConnection(connectionString)) { cn.Open(); rows = FetchData(cn, columns.Count); } VerifyFetchedData(columns, data, rows); }
private static void LoadData(TestDataImporter importer, IEnumerable<TestData> data) { foreach (var row in data) { var success = importer.SendRow(row); Assert.IsTrue(success, "SendRow"); } Assert.IsTrue(importer.Done(), "Done"); }