示例#1
0
        public void IncomeRepository_GetAll_Returns_All_Data()
        {
            var data = new List <Income>();

            Enumerable.Range(1, 5).ToList().ForEach(i => data.Add(new Income((decimal)Math.Pow(i, i), DateTime.Today, new IncomeCategory(1, "test"), new PaymentMethod(1, "test"), "")));

            var mock = RepositoryMocks.GetMockIncomeRepository(data);

            var actual = mock.GetAll();

            CollectionAssert.AreEquivalent(data, actual.ToList());
        }
示例#2
0
        public void IncomeRepository_Create_Does_Nothing_If_Item_Is_Null()
        {
            var mock   = RepositoryMocks.GetMockIncomeRepository();
            var before = mock.GetAll();

            mock.Create(null);

            var result = mock.GetAll();

            Assert.IsNotNull(result);
            CollectionAssert.AreEquivalent(before.ToList(), result.ToList());
        }
示例#3
0
        public void IncomeRepository_Remove_Database_Is_Empty_Nothing_Happens()
        {
            var mock = RepositoryMocks.GetMockIncomeRepository();

            var before = mock.GetAll();

            mock.Remove(1);

            var after = mock.GetAll();

            CollectionAssert.AreEquivalent(before.ToList(), after.ToList());
        }
示例#4
0
        public void IncomeRepository_GetById_Returns_Object_If_Found()
        {
            var testDataWithId = _baseTestData.Copy();

            testDataWithId.Id = 1;
            var mock = RepositoryMocks.GetMockIncomeRepository(new List <Income> {
                testDataWithId
            });

            var actual = mock.GetById(1);

            Assert.AreEqual(testDataWithId, actual);
        }
示例#5
0
        public void Details_ListOfHouses_ReturnsList()
        {
            //arrange some data
            var fakeData = RepositoryMocks.GetFakeHomeIndexViewModel();

            mockHouseService.Setup(x => x.GetAll(It.IsAny <string>())).Returns(fakeData);

            //act
            var result = _controller.Index( );

            //assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
        public void ExpenseRepository_GetById_Returns_Object_If_Found()
        {
            var testDataWithID = baseTestData.Copy();

            testDataWithID.Id = 1;
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                testDataWithID
            });

            var actual = mock.GetById(1);

            Assert.AreEqual(testDataWithID, actual);
        }
        public void ExpenseRepository_GetForMonthAndYear_Returns_Empty_List_If_None_Found()
        {
            var data = new List <Expense>();

            Enumerable.Range(1, 5).ToList().ForEach(i => data.Add(new Expense((decimal)Math.Pow(i, i), DateTime.Today, new ExpenseCategory(1, "test"), new PaymentMethod(1, "test"), "")));

            var mock = RepositoryMocks.GetMockExpenseRepository(data);

            var actual = mock.GetForMonthAndYear(1, 2010);

            Assert.IsNotNull(actual);
            Assert.IsTrue(actual.Count() == 0);
        }
示例#8
0
        public void Edit_SuccessfullEdit_ReturnsToDetailsPage()
        {
            //arrange
            var houseEditVM = RepositoryMocks.GetFakeHouseEditViewModel();

            //mockHouseService.Setup(x => x.GetById(It.IsAny<int>())).Returns(viewmodel) ;


            //act
            var result = (RedirectToActionResult)_controller.Edit(houseEditVM);

            //assert
            Assert.AreEqual("Details", result.ActionName);
        }
        public void PaymentMethodRepository_RemoveByName_Name_Does_Not_Exist_Nothing_Happens()
        {
            var mock = RepositoryMocks.GetMockPaymentMethodRepository(new List <PaymentMethod> {
                _baseTestData
            });

            var before = mock.GetAll();

            mock.RemoveByName(_baseTestData.Name + " not really");

            var after = mock.GetAll();

            CollectionAssert.AreEqual(before.ToList(), after.ToList());
        }
        public void ExpenseRepository_Remove_Database_Has_No_Match_Nothing_Happens()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                baseTestData
            });

            var before = mock.GetAll();

            mock.Remove(1);

            var after = mock.GetAll();

            CollectionAssert.AreEquivalent(before.ToList(), after.ToList());
        }
示例#11
0
        public void IncomeCategoryRepository_RemoveByName_Name_Does_Not_Exist_Nothing_Happens()
        {
            var mock = RepositoryMocks.GetMockIncomeCategoryRepository(new List <IncomeCategory> {
                baseTestData
            });

            var before = mock.GetAll();

            mock.RemoveByName(baseTestData.Name + " not really");

            var after = mock.GetAll();

            CollectionAssert.AreEqual(before.ToList(), after.ToList());
        }
示例#12
0
        public void GeneralCategoryHandler_GetAllNames_With_Duplicates_In_Both()
        {
            var moreIncomeCategoryData  = _expenseCategoryData.Select(i => new IncomeCategory(i.Id * 2, i.Name));
            var moreExpenseCategoryData = _incomeCategoryData.Select(i => new ExpenseCategory(i.Id * 3, i.Name));

            var mock = RepositoryMocks.GetMockGeneralCategoryHandler(_expenseCategoryData.Concat(moreExpenseCategoryData).ToList(), _incomeCategoryData.Concat(moreIncomeCategoryData).ToList());

            var expected = new List <string> {
                "Total Expenses", "third - Expense", "fourth - Expense", "first - Expense", "second - Expense", "Total Income", "first - Income", "second - Income", "third - Income", "fourth - Income"
            };
            var actual = mock.GetAllCategoryNames();

            CollectionAssert.AreEqual(expected, actual.ToList());
        }
示例#13
0
        public void ExpenseCategpryRepository_Save_Id_Zero_Adds_Item()
        {
            var mock   = RepositoryMocks.GetMockIncomeCategoryRepository();
            var before = mock.GetAll();

            Assert.IsTrue(before.Count() == 0);

            var newItem = new IncomeCategory(0, "test");

            mock.Save(newItem);

            var after = mock.GetAll();

            Assert.IsTrue(after.Contains(newItem));
        }
示例#14
0
        public void IncomeCategoryRepository_GetAll_Returns_All_Data()
        {
            var expected = new List <IncomeCategory>();

            for (int i = 0; i < 5; i++)
            {
                expected.Add(new IncomeCategory(baseTestData.Id + i, $"{baseTestData.Name}::{i}"));
            }
            var mock = RepositoryMocks.GetMockIncomeCategoryRepository(expected);

            var result = mock.GetAll();

            Assert.IsNotNull(result);
            CollectionAssert.AreEqual(expected, result.ToList());
        }
        public void ExpenseRepository_GetForMonthAndYear_Returns_Filtered_List()
        {
            var data = new List <Expense>();

            Enumerable.Range(1, 5).ToList().ForEach(i => data.Add(new Expense((decimal)Math.Pow(i, i), DateTime.Today, new ExpenseCategory(1, "test"), new PaymentMethod(1, "test"), "")));
            var expected = new List <Expense>(data);

            Enumerable.Range(6, 5).ToList().ForEach(i => data.Add(new Expense((decimal)Math.Pow(i, i), DateTime.MinValue, new ExpenseCategory(1, "test"), new PaymentMethod(1, "test"), "")));

            var mock = RepositoryMocks.GetMockExpenseRepository(data);

            var actual = mock.GetForMonthAndYear(DateTime.Today.Month, DateTime.Today.Year);

            CollectionAssert.AreEquivalent(expected, actual.ToList());
        }
        public void ExpenseCategpryRepository_Save_Id_Zero_Adds_Item()
        {
            var mock   = RepositoryMocks.GetMockPaymentMethodRepository();
            var before = mock.GetAll();

            Assert.IsTrue(!before.Any());

            var newItem = new PaymentMethod(0, "test");

            mock.Save(newItem);

            var after = mock.GetAll();

            Assert.IsTrue(after.Contains(newItem));
        }
        public void PaymentMethodRepository_GetAll_Returns_All_Data()
        {
            var expected = new List <PaymentMethod>();

            for (var i = 0; i < 5; i++)
            {
                expected.Add(new PaymentMethod(_baseTestData.Id + i, $"{_baseTestData.Name}::{i}"));
            }
            var mock = RepositoryMocks.GetMockPaymentMethodRepository(expected);

            var result = mock.GetAll();

            Assert.IsNotNull(result);
            CollectionAssert.AreEqual(expected, result.ToList());
        }
        public void ExpenseCategpryRepository_Save_Id_Zero_Adds_Item()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository();

            // filters out the object added to make the mock work
            var actual = mock.GetAll().Where(e => e.Id != 0);

            Assert.IsTrue(actual.Count() == 0);

            mock.Save(baseTestData);

            var after = mock.GetAll();

            Assert.IsTrue(after.Contains(baseTestData));
        }
示例#19
0
        public async Task TestITISPlantInfoProcessor()
        {
            var transformer = new ITISPlantInfoTransformer();
            var itisData    = ITISPlantInfoData();
            var plantInfos  = new List <PlantInfo>();

            itisData.ForEach(i => plantInfos.AddRange(transformer.Transform(new List <TaxonomicUnit> {
                i
            })));

            var originRepository        = RepositoryMocks.GetStandardMockOriginRepository(new List <Stores.Origin>());
            var locationRepository      = RepositoryMocks.GetStandardMockLocationRepository(new List <Stores.Location>());
            var lifeformRepository      = RepositoryMocks.GetStandardMockLifeformRepository(new List <Stores.Lifeform>());
            var plantInfoRepository     = RepositoryMocks.GetStandardMockPlantInfoRepository(new List <Stores.PlantInfo>());
            var plantLocationRepository = RepositoryMocks.GetStandardMockPlantLocationRepository(new List <Stores.PlantLocation>());
            var synonymRepository       = RepositoryMocks.GetStandardMockSynonymRepository();
            var taxonRepository         = RepositoryMocks.GetStandardMockTaxonRepository(new List <Stores.Taxon>());
            var plantSynonymRepository  = new Mock <IRepository <Stores.PlantSynonym> >();
            var plantInfoIndex          = SearchMocks.GetStandardMockPlantInfoIndex();
            var lifeformIndex           = SearchMocks.GetStandardMockLifeformIndex();

            var locationService  = new LocationService(locationRepository.Object);
            var originService    = new OriginService(originRepository.Object, locationService);
            var lifeformService  = new LifeformService(lifeformRepository.Object, lifeformIndex.Object);
            var plantInfoService = new PlantInfoService(plantInfoRepository.Object, plantLocationRepository.Object, plantInfoIndex.Object);
            var synonymService   = new SynonymService(synonymRepository.Object);
            var taxonService     = new TaxonService(taxonRepository.Object, synonymService);

            var processor = new PlantInfoProcessor(lifeformService, originService, plantInfoService, taxonService, locationService);

            await processor.InitializeOrigin(transformer.Origin);

            await processor.InitializeLifeforms();

            await processor.InitializeTaxons();

            var result = await processor.Process(plantInfos);

            result.Count(p => p.ScientificName == "Glandularia quadrangulata").Should().Be(1);
            result.Count(p => p.Taxon.Subfamily == null).Should().Be(5);
            result.Count(p => p.Taxon.Species == "cremersii").Should().Be(1);
            result.Count(p => p.Taxon.Form == "viridifolia").Should().Be(1);
            result.Count(p => p.Taxon.Subspecies == "purpurea").Should().Be(1);
            result.Count(p => p.Taxon.Variety == "graminea").Should().Be(1);
            result.Where(p => p.Locations != null).SelectMany(p => p.Locations).Count().Should().Be(3);
            result.Where(p => p.Locations != null).SelectMany(p => p.Locations).Count(l => l.Status == LocationStatus.Native).Should().Be(3);
            result.Select(p => p.Origin).DistinctBy(o => o.OriginId).Count().Should().Be(5);
        }
示例#20
0
        public void IncomeCategoryRepository_RemoveByName_Name_Exists_Item_Is_Removed_With_Different_Casing()
        {
            var mock = RepositoryMocks.GetMockIncomeCategoryRepository(new List <IncomeCategory> {
                baseTestData
            });

            var before = mock.GetAll();

            Assert.IsTrue(before.Contains(baseTestData));

            mock.RemoveByName(baseTestData.Name.ToUpper());

            var after = mock.GetAll();

            Assert.IsFalse(after.Contains(baseTestData));
        }
示例#21
0
        public void PaymentMethodRepository_RemoveByName_Name_Exists_Item_Is_Removed()
        {
            var mock = RepositoryMocks.GetMockPaymentMethodRepository(new List <PaymentMethod> {
                baseTestData
            });

            var before = mock.GetAll();

            Assert.IsTrue(before.Contains(baseTestData));

            mock.RemoveByName(baseTestData.Name);

            var after = mock.GetAll();

            Assert.IsFalse(after.Contains(baseTestData));
        }
示例#22
0
        public void IncomeCategoryRepository_RemoveByName_Name_Exists_Item_Is_Removed()
        {
            var mock = RepositoryMocks.GetMockIncomeCategoryRepository(new List <IncomeCategory> {
                _baseTestData
            });

            var before = mock.GetAll();

            Assert.IsTrue(before.Contains(_baseTestData));

            mock.RemoveByName(_baseTestData.Name);

            var after = mock.GetAll();

            Assert.IsFalse(after.Contains(_baseTestData));
        }
        public void PaymentMethodRepository_RemoveByName_Name_Exists_Item_Is_Removed_With_Different_Casing()
        {
            var mock = RepositoryMocks.GetMockPaymentMethodRepository(new List <PaymentMethod> {
                _baseTestData
            });

            var before = mock.GetAll();

            Assert.IsTrue(before.Contains(_baseTestData));

            mock.RemoveByName(_baseTestData.Name.ToUpper());

            var after = mock.GetAll();

            Assert.IsFalse(after.Contains(_baseTestData));
        }
        public void Handle_InvalidCommand_ShouldThrowValidationException()
        {
            var mockCountryRepository = RepositoryMocks.GetCountryRepository();

            mockCountryRepository.Setup(repo => repo.IsCountryNameUnique(It.IsAny <string>())).ReturnsAsync(false);

            var handler = new CreateCountryCommandHandler(_mapper, mockCountryRepository.Object);

            Func <Task> func = async() => await handler.Handle(new CreateCountryCommand { Name = "" }, CancellationToken.None);

            func.Should().Throw <ValidationException>().Where(e => e.Errors.Count == 2 &&
                                                              e.Errors.Any(x => x.Contains("Name cannot be empty")) &&
                                                              e.Errors.Any(x => x.Contains("Country with that name already exists")));

            mockCountryRepository.Verify(repo => repo.AddAsync(It.IsAny <Country>()), Times.Never());
        }
        public void ExpenseRepository_Update_Changes_Method()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                baseTestData
            });

            var expected = mock.GetById(baseTestData.Id);

            expected.Method = new PaymentMethod(4, "other-method");

            mock.Update(expected);

            var actual = mock.GetById(expected.Id);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
        public void ExpenseRepository_Update_Changes_Date()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                baseTestData
            });

            var expected = mock.GetById(baseTestData.Id);

            expected.Date = DateTime.MinValue;

            mock.Update(expected);

            var actual = mock.GetById(expected.Id);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
        public void ExpenseRepository_Update_Changes_Comments()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                baseTestData
            });

            var expected = mock.GetById(baseTestData.Id);

            expected.Comments = "moar comments";

            mock.Update(expected);

            var actual = mock.GetById(expected.Id);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
        public void ExpenseRepository_Update_Changes_The_Category()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                baseTestData
            });

            var expected = mock.GetById(baseTestData.Id);

            expected.Category = new ExpenseCategory(4, "other-cat");

            mock.Update(expected);

            var actual = mock.GetById(expected.Id);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
示例#29
0
        public void ExpenseRepository_Update_Changes_The_Id()
        {
            var mock = RepositoryMocks.GetMockExpenseRepository(new List <Expense> {
                _baseTestData
            });

            var expected = mock.GetById(_baseTestData.Id);

            expected.Id++;

            mock.Update(expected);

            var actual = mock.GetById(expected.Id);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected, actual);
        }
        public void PaymentMethodRepository_Create_Adds_New_Item()
        {
            var testObject = new PaymentMethod(0, "test");

            var mock = RepositoryMocks.GetMockPaymentMethodRepository();

            mock.Create(testObject);

            var result = mock.GetAll();

            Assert.IsTrue(result.Contains(testObject));

            var singleItem = mock.GetById(testObject.Id);

            Assert.IsNotNull(singleItem);
            Assert.AreEqual(testObject, singleItem);
        }