Пример #1
0
        public void AdaptLookupFromEntitiesToModels_MergesByIdForExistingValues()
        {
            // arrange
            var fromValues = LookupTestUtility.CreateEntities(false);

            foreach (var fromValue in fromValues)
            {
                Assert.AreNotEqual <int>(0, fromValue.Id, "Value wasn't 'saved' before start of test.");
            }

            int expectedCount = fromValues.Count;

            var toValues = new List <Benday.EasyAuthDemo.Api.DomainModels.Lookup>();

            // adapt first time
            SystemUnderTest.Adapt(fromValues, toValues);

            var originalValuesById = GetOriginalValuesById(toValues);

            // act
            // call adapt again
            SystemUnderTest.Adapt(fromValues, toValues);

            // assert
            Assert.AreNotEqual <int>(0, toValues.Count, "There should be values.");
            AssertValuesStillExistAndIdDidNotChange(toValues, originalValuesById);
            LookupTestUtility.AssertAreEqual(fromValues, toValues);
        }
Пример #2
0
        public void Save_ModifiedValidItem_SavesChangesToRepository()
        {
            // arrange
            PopulateRepositoryWithTestData();
            var savedEntity = LookupRepositoryInstance.Items[2];
            var saveThis    = SystemUnderTest.GetById(savedEntity.Id);

            Assert.IsNotNull(saveThis, "Item to modify is null");
            Assert.AreNotEqual <int>(0, saveThis.Id,
                                     "Item to modify has an Id of 0 indicating that it was not saved.");
            var expectedId = saveThis.Id;

            ValidatorStrategy.IsValidReturnValue = true;

            LookupTestUtility.ModifyModel(saveThis);

            LookupRepositoryInstance.ResetMethodCallTrackers();

            // act
            SystemUnderTest.Save(saveThis);

            // assert
            Assert.AreEqual <int>(expectedId, saveThis.Id,
                                  "Id should not change when modified.");
            Assert.IsTrue(LookupRepositoryInstance.WasSaveCalled, "Save was not called.");

            var entity = LookupRepositoryInstance.GetById(saveThis.Id);

            Assert.IsNotNull(entity, "Entity wasn't saved to repository.");
            LookupTestUtility.AssertAreEqual(saveThis, entity);
        }
Пример #3
0
        public void Save_NewInvalidItem_DoesNotGetSavedAndThrowsValidationException()
        {
            // arrange
            var saveThis = LookupTestUtility.CreateModel(true);

            ValidatorStrategy.IsValidReturnValue = false;
            bool gotException = false;

            // act
            try
            {
                SystemUnderTest.Save(saveThis);
            }
            catch (InvalidObjectException)
            {
                gotException = true;
            }
            catch (Exception ex)
            {
                Assert.Fail($"Got wrong kind of exception. {ex}");
            }

            // assert
            Assert.IsTrue(gotException, "Did not get an invalid object exception.");
            Assert.IsFalse(LookupRepositoryInstance.WasSaveCalled, "Save should not be called.");
        }
        public void LookupController_Search_RunSimpleSearch_ShouldHaveRecords()
        {
            // arrange
            LookupServiceInstance.SimpleSearchReturnValue =
                LookupTestUtility.CreateModels(false, 100);

            var model = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search());

            model.IsSimpleSearch    = true;
            model.SimpleSearchValue = "searchval";

            // act
            var result = SystemUnderTest.Search(model, null, null);
            var actual = UnitTestUtility.GetModel <LookupSearchViewModel>(result);

            // assert
            Assert.IsNotNull(actual, "Model was null");
            Assert.IsNotNull(actual.Results, "Results was null");
            Assert.IsNotNull(actual.Results.PageValues, "Results.PageValues was null");
            Assert.AreNotEqual <int>(0, actual.Results.PageValues.Count, "No items on the current page");

            Assert.IsTrue(String.IsNullOrEmpty(actual.CurrentSortProperty), "CurrentSortProperty should be null or empty.");
            Assert.AreEqual <string>(SearchConstants.SortDirectionAscending, actual.CurrentSortDirection, "CurrentSortDirection was wrong");
        }
        public void LookupController_Search_RunSimpleSearch_WithSort()
        {
            // arrange
            LookupServiceInstance.SimpleSearchReturnValue =
                LookupTestUtility.CreateModels(false, 100);

            var model = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search());

            model.IsSimpleSearch    = true;
            model.SimpleSearchValue = "searchval";

            // act & assert

            // first time sort by null to simulate the first search on the page
            var actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, null, null));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, null, SearchConstants.SortDirectionAscending);

            // sort by Lookup name to simulate sorting the search
            string sortBy = nameof(Lookup.Id);

            actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);

            // sort by Lookup name again to simulate flipping the sort direction
            sortBy = nameof(Lookup.Id);
            actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionDescending);
        }
Пример #6
0
        private void PopulateRepositoryWithTestData()
        {
            var items = LookupTestUtility.CreateEntities();

            foreach (var item in items)
            {
                LookupRepositoryInstance.Save(item);
            }
        }
Пример #7
0
        public void AdaptLookupFromModelToViewModel()
        {
            // arrange
            var fromValue = LookupTestUtility.CreateModel();
            var toValue   = new Benday.EasyAuthDemo.WebUi.Models.LookupEditorViewModel();

            // act
            SystemUnderTest.Adapt(fromValue, toValue);

            // assert
            LookupViewModelTestUtility.AssertAreEqual(fromValue, toValue);
        }
Пример #8
0
        public void AdaptLookupFromEntityToModel()
        {
            // arrange
            var fromValue = LookupTestUtility.CreateEntity();
            var toValue   = new Benday.EasyAuthDemo.Api.DomainModels.Lookup();

            // act
            SystemUnderTest.Adapt(fromValue, toValue);

            // assert
            LookupTestUtility.AssertAreEqual(fromValue, toValue);
        }
Пример #9
0
        public void AdaptLookupFromModelToEntity()
        {
            // arrange
            var fromValue = LookupTestUtility.CreateModel();
            var toValue   = new Benday.EasyAuthDemo.Api.DataAccess.Entities.LookupEntity();

            // act
            SystemUnderTest.Adapt(fromValue, toValue);

            // assert
            LookupTestUtility.AssertAreEqual(fromValue, toValue);
        }
Пример #10
0
        public void AdaptLookupFromEntitiesToModels_ToEmpty()
        {
            // arrange
            var fromValues = LookupTestUtility.CreateEntities();
            var toValues   = new List <Benday.EasyAuthDemo.Api.DomainModels.Lookup>();

            // act
            SystemUnderTest.Adapt(fromValues, toValues);

            // assert
            Assert.AreNotEqual <int>(0, toValues.Count, "There should be values.");
            LookupTestUtility.AssertAreEqual(fromValues, toValues);
        }
Пример #11
0
        public void Save_ModifiedValidItem_CreatedAndLastUpdatedFieldsArePopulated()
        {
            // arrange
            PopulateRepositoryWithTestData();
            var savedEntity = LookupRepositoryInstance.Items[2];
            var saveThis    = SystemUnderTest.GetById(savedEntity.Id);

            Assert.IsNotNull(saveThis, "Item to modify is null");
            Assert.AreNotEqual <int>(0, saveThis.Id,
                                     "Item to modify has an Id of 0 indicating that it was not saved.");
            var expectedId = saveThis.Id;

            ValidatorStrategy.IsValidReturnValue = true;

            LookupTestUtility.ModifyModel(saveThis);

            LookupRepositoryInstance.ResetMethodCallTrackers();

            UsernameProvider.GetUsernameReturnValue = UnitTestConstants.FakeUsername2;

            var originalCreatedBy      = saveThis.CreatedBy;
            var originalLastModifiedBy = saveThis.LastModifiedBy;

            var originalCreatedDate  = saveThis.CreatedDate;
            var originalLastModified = saveThis.LastModifiedDate;

            Thread.Sleep(UnitTestConstants.NumberOfMillisecondsForRecentDateTimeAssert * 2);

            // act
            SystemUnderTest.Save(saveThis);

            // assert
            Assert.AreEqual <string>(originalCreatedBy,
                                     saveThis.CreatedBy,
                                     "CreatedBy was wrong.");

            Assert.AreEqual <DateTime>(originalCreatedDate, saveThis.CreatedDate,
                                       "CreatedDate was wrong.");

            Assert.AreEqual <string>(UnitTestConstants.FakeUsername2,
                                     saveThis.LastModifiedBy,
                                     "LastModifiedBy was wrong.");

            UnitTestUtility.AssertDateTimeIsRecent(
                saveThis.LastModifiedDate, "LastModifiedDate");

            var entity = LookupRepositoryInstance.GetById(saveThis.Id);

            Assert.IsNotNull(entity, "Entity wasn't saved to repository.");
            LookupTestUtility.AssertAreEqual(saveThis, entity);
        }
Пример #12
0
        public void Save_ExistingItemThatNoLongerIsInTheDatabase_DoesNotGetSavedAndThrowsException()
        {
            // arrange
            var idValueThatIsNotAlreadySavedToTheRepository = 1312341234;
            var saveThis = LookupTestUtility.CreateModel();

            saveThis.Id = idValueThatIsNotAlreadySavedToTheRepository;
            ValidatorStrategy.IsValidReturnValue = true;

            // act
            SystemUnderTest.Save(saveThis);

            // assert
        }
        public void LookupController_Delete_Confirmed_ForKnownValueCallsServiceAndReturnsValue()
        {
            // arrange
            var expected = LookupTestUtility.CreateModel();

            LookupServiceInstance.GetByIdReturnValue = expected;

            // act
            var actual = SystemUnderTest.Delete(expected);

            // assert
            Assert.IsNotNull(actual, "Return value was null.");
            Assert.IsTrue(LookupServiceInstance.WasGetByIdCalled, "GetById was not called.");
            Assert.IsTrue(LookupServiceInstance.WasDeleteByIdCalled, "DeleteById was not called.");
        }
        public void LookupController_Delete_Confirmed_ForUnknownValueReturnsNotFound()
        {
            // arrange
            var expected = LookupTestUtility.CreateModel();

            LookupServiceInstance.GetByIdReturnValue = null;

            // act
            var actual = SystemUnderTest.Delete(expected);

            // assert
            Assert.IsNotNull(actual, "Return value was null.");
            UnitTestUtility.AssertIsHttpNotFound(actual);
            Assert.IsTrue(LookupServiceInstance.WasGetByIdCalled, "GetById was not called.");
            Assert.IsFalse(LookupServiceInstance.WasDeleteByIdCalled,
                           "DeleteById should not be called.");
        }
        public void LookupController_Index_CallsServiceAndReturnsList()
        {
            // arrange
            var expected = LookupTestUtility.CreateModels();

            LookupServiceInstance.GetAllReturnValue = expected;

            // act
            var actual =
                UnitTestUtility.GetModel <IList <Lookup> >(
                    SystemUnderTest.Index());

            // assert
            Assert.IsNotNull(actual, "Model was null.");
            Assert.AreSame(expected, actual, "Did not return the expected instance.");
            Assert.IsTrue(LookupServiceInstance.WasGetAllCalled, "GetAll was not called.");
        }
        public void LookupController_Search_LoadPage()
        {
            // arrange
            LookupServiceInstance.SearchUsingSimpleSearchReturnValue =
                LookupTestUtility.CreateModels(false, 100);

            // act
            var result = SystemUnderTest.Search();

            // assert
            var model = UnitTestUtility.GetModel <LookupSearchViewModel>(result);

            Assert.IsNotNull(model, "Model was null");

            Assert.IsTrue(model.IsSimpleSearch, "IsSimpleSearch");
            Assert.IsFalse(LookupServiceInstance.WasSearchUsingSimpleSearchCalled,
                           "Search using simple search should not be called.");
        }
        public void LookupController_Delete_GetConfirmationPage_ForKnownValueCallsServiceAndReturnsValue()
        {
            // arrange
            var expected = LookupTestUtility.CreateModel();

            LookupServiceInstance.GetByIdReturnValue = expected;

            // act
            var actual =
                UnitTestUtility.GetModel <Lookup>(
                    SystemUnderTest.Delete(1234));

            // assert
            Assert.IsNotNull(actual, "Model was null.");
            Assert.AreSame(expected, actual, "Did not return the expected instance.");
            Assert.IsTrue(LookupServiceInstance.WasGetByIdCalled, "GetById was not called.");
            Assert.IsFalse(LookupServiceInstance.WasDeleteByIdCalled,
                           "DeleteById should not be called.");
        }
        public void LookupController_Edit_ExistingItem_SavesAndReturns()
        {
            // arrange
            var saveThis = LookupTestUtility.CreateModel(false);

            LookupServiceInstance.GetByIdReturnValue = saveThis;

            var viewModel =
                UnitTestUtility.GetModel <LookupEditorViewModel>(
                    SystemUnderTest.Edit(1234));

            // act
            var actual = SystemUnderTest.Edit(viewModel);

            // assert
            UnitTestUtility.AssertIsRedirectToActionResult(actual);
            Assert.IsTrue(LookupServiceInstance.WasSaveCalled, "Save was not called.");
            Assert.AreSame(saveThis, LookupServiceInstance.SaveArgumentValue, "Wrong value was saved.");
        }
        public void LookupController_Edit_ForKnownValueCallsServiceAndReturnsValue()
        {
            // arrange
            var expected = LookupTestUtility.CreateModel();

            LookupServiceInstance.GetByIdReturnValue = expected;

            InitializeFakeLookups();

            // act
            var actual =
                UnitTestUtility.GetModel <LookupEditorViewModel>(
                    SystemUnderTest.Edit(1234));

            // assert
            Assert.IsNotNull(actual, "Model was null.");
            Assert.IsTrue(LookupServiceInstance.WasGetByIdCalled, "GetById was not called.");
            AssertLookupValueListsArePopulated(actual);
        }
        public void LookupController_Details_ForKnownValueCallsServiceAndReturnsValue()
        {
            // arrange
            var expected = LookupTestUtility.CreateModel();

            LookupServiceInstance.GetByIdReturnValue = expected;

            InitializeFakeLookups();

            // act
            var actual =
                UnitTestUtility.GetModel <Lookup>(
                    SystemUnderTest.Details(1234));

            // assert
            Assert.IsNotNull(actual, "Model was null.");
            Assert.AreSame(expected, actual, "Did not return the expected instance.");
            Assert.IsTrue(LookupServiceInstance.WasGetByIdCalled, "GetById was not called.");
        }
        public void LookupController_Search_RunSimpleSearch_WithSort_ChangePages()
        {
            // arrange
            LookupServiceInstance.SimpleSearchReturnValue =
                LookupTestUtility.CreateModels(false, 100);

            var model = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search());

            model.IsSimpleSearch    = true;
            model.SimpleSearchValue = "searchval";

            // act & assert

            // sort by Lookup name to simulate sorting the search
            string sortBy = nameof(Lookup.Id);
            var    actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, null, sortBy));

            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);

            Assert.IsTrue(actual.Results.PageCount > 2, "PageCount should be greater than 2 for this test");

            var page1Values = new List <Lookup>(actual.Results.PageValues);

            // change to page 2
            actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, "2", null));
            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);
            Assert.AreEqual <int>(2, actual.Results.CurrentPage, "Results page number was wrong.");
            var page2Values = new List <Lookup>(actual.Results.PageValues);

            CollectionAssert.AreNotEquivalent(page2Values, page1Values, "Page values didn't change");

            // change to page 3
            actual = UnitTestUtility.GetModel <LookupSearchViewModel>(
                SystemUnderTest.Search(model, "3", null));
            SearchAndSortTestUtility.AssertSearchResultsAndSortDirection(actual, sortBy, SearchConstants.SortDirectionAscending);
            Assert.AreEqual <int>(3, actual.Results.CurrentPage, "Results page number was wrong.");
            var page3Values = new List <Lookup>(actual.Results.PageValues);

            CollectionAssert.AreNotEquivalent(page3Values, page2Values, "Page values didn't change");
        }
Пример #22
0
        public void Save_NewValidItem_IdIsPopulatedAndIsInRepository()
        {
            // arrange
            var saveThis = LookupTestUtility.CreateModel(true);

            ValidatorStrategy.IsValidReturnValue = true;

            // act
            SystemUnderTest.Save(saveThis);

            // assert
            Assert.AreNotEqual <int>(0, saveThis.Id, "Id should not be zero after save.");
            Assert.IsTrue(LookupRepositoryInstance.WasSaveCalled, "Save was not called.");
            var actual = LookupRepositoryInstance.GetById(saveThis.Id);

            Assert.IsNotNull(actual, "Item wasn't saved to repository.");

            var entity = LookupRepositoryInstance.GetById(saveThis.Id);

            Assert.IsNotNull(entity, "Entity wasn't saved to repository.");
            LookupTestUtility.AssertAreEqual(saveThis, entity);
        }
Пример #23
0
        public void Save_ModifiedInvalidItem_DoesNotGetSavedAndThrowsValidationException()
        {
            // arrange
            PopulateRepositoryWithTestData();
            var savedEntity = LookupRepositoryInstance.Items[2];
            var saveThis    = SystemUnderTest.GetById(savedEntity.Id);

            Assert.IsNotNull(saveThis, "Item to modify is null");
            Assert.AreNotEqual <int>(0, saveThis.Id,
                                     "Item to modify has an Id of 0 indicating that it was not saved.");
            var expectedId = saveThis.Id;

            ValidatorStrategy.IsValidReturnValue = false;
            bool gotException = false;

            LookupTestUtility.ModifyModel(saveThis);

            LookupRepositoryInstance.ResetMethodCallTrackers();

            // act
            try
            {
                SystemUnderTest.Save(saveThis);
            }
            catch (InvalidObjectException)
            {
                gotException = true;
            }
            catch (Exception ex)
            {
                Assert.Fail($"Got wrong kind of exception. {ex}");
            }

            // assert
            Assert.IsTrue(gotException, "Did not get an invalid object exception.");
            Assert.AreNotEqual <int>(0, saveThis.Id, "Id should not be zero after save.");
            Assert.IsFalse(LookupRepositoryInstance.WasSaveCalled, "Save should not be called.");
        }
Пример #24
0
        public void Save_NewValidItem_CreatedAndLastUpdatedFieldsArePopulated()
        {
            // arrange
            var saveThis = LookupTestUtility.CreateModel(true);

            ValidatorStrategy.IsValidReturnValue = true;
            Assert.IsFalse(
                String.IsNullOrWhiteSpace(UsernameProvider.GetUsernameReturnValue),
                "Username provider was not initialized propertly.");

            // act
            SystemUnderTest.Save(saveThis);

            // assert
            UnitTestUtility.AssertDomainModelBaseAuditFieldsArePopulated(
                saveThis, UsernameProvider.GetUsernameReturnValue, "saveThis");



            var entity = LookupRepositoryInstance.GetById(saveThis.Id);

            Assert.IsNotNull(entity, "Entity wasn't saved to repository.");
            LookupTestUtility.AssertAreEqual(saveThis, entity);
        }
Пример #25
0
 private void InitializeFakeLookups()
 {
     LookupServiceInstance.GetAllByTypeReturnValue =
         LookupTestUtility.CreateModels(false);
 }