public void RunTaskExecutesSuccessfullyFirstTime() { using (new TestDataHelper(TestQueryEcom.POPULATE_BUSINESSES, TestQueryEcom.CLEANUP_TEST_DATA, DbHelper.ECOM_CONNECTION_STRING_NAME)) { // Arrange IBusinessManager businessManager = new BusinessManager(); DateTime fromDate = new DateTime(2012, 01, 1, 0, 0, 0, DateTimeKind.Utc); SyncBusinessesToEagle.FromDate = fromDate; SyncBusinessesToEagle.Identity = new GenericIdentity(WindowsServiceUserGuid.ToString()); //UserHelper.SetupUser(WindowsUserName, UserHelper.VALIDUSERPASS, WindowsUserName, WindowsServiceUserGuid); List<EcomBusinessAccount> expectedBusinessAccountList = new EcomDataProvider().GetLastModifiedBusinesses(fromDate, DateTime.UtcNow); // Act SyncBusinessesToEagle.Run(); // Assert //verify if the latest timestamp in Eccom.BusinessAccount is later than the one obtained before DateTime lastModifiedDateTime = businessManager.GetTimestampOfLastBusinessSyncedFromEcom(); // Add 10 seconds to date time now so it doesn't fail in the build server var now = DateTime.UtcNow.AddSeconds(10); TimeSpan currentDateDiff = now - lastModifiedDateTime; TimeSpan lastDateDiff = lastModifiedDateTime - fromDate; bool result = (currentDateDiff.TotalHours >= 0 && lastDateDiff.TotalHours >= 0); Assert.IsTrue(result, string.Format("The last modified date is not correct: lastModifiedDateTime - {0} ; fromDate - {1}. Now: {2}", lastModifiedDateTime, fromDate, now)); //verify if all the expected businesses were inserted/updated Assert.AreEqual(expectedBusinessAccountList.Count, businessManager.GetBusinessAccountsSyncedByLastModifiedDate(lastModifiedDateTime).Count, "The expected businesses were not returned."); } }
public void RunTaskExecutesSuccessfullyTwoConsecutiveTimes() { // Arrange IBusinessManager businessManager = new BusinessManager(); DateTime fromDate = new DateTime(2012, 01, 1, 0, 0, 0, DateTimeKind.Utc); SyncBusinessesToEagle.FromDate = fromDate; SyncBusinessesToEagle.Identity = new GenericIdentity(WindowsServiceUserGuid.ToString()); //UserHelper.SetupUser(WindowsUserName, UserHelper.VALIDUSERPASS, WindowsUserName, WindowsServiceUserGuid); SyncBusinessesToEagle.Run(); fromDate = DateTime.UtcNow; DateTime expectedLastModifiedDateTime = businessManager.GetTimestampOfLastBusinessSyncedFromEcom(); SyncBusinessesToEagle.FromDate = fromDate; SyncBusinessesToEagle.Identity = new GenericIdentity(WindowsServiceUserGuid.ToString()); List<EcomBusinessAccount> expectedBusinessAccountList = new EcomDataProvider().GetLastModifiedBusinesses(fromDate, DateTime.UtcNow); // Act SyncBusinessesToEagle.Run(); // Assert //verify if the latest timestamp in Eccom.BusinessAccount is the same as obtain before DateTime lastModifiedDateTime = businessManager.GetTimestampOfLastBusinessSyncedFromEcom(); TimeSpan lastDateDiff = lastModifiedDateTime - expectedLastModifiedDateTime; Assert.IsTrue(lastDateDiff.TotalHours == 0, string.Format("The last modified date is not bigger than the one we had before running the task: lastModifiedDateTime - {0} ; expectedLastModifiedDateTime - {1}", lastModifiedDateTime, expectedLastModifiedDateTime)); //verify that no business was changed in the meanwhile Assert.AreEqual(0, expectedBusinessAccountList.Count, "The list is expected to be null"); }