Пример #1
0
        public void ShouldThrowArgumentNullException_WhenFilterParameterIsNull()
        {
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            var fakeData = new List <FakeEmployee>()
            {
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
            }
            .AsQueryable();

            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Provider).Returns(fakeData.Provider);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Expression).Returns(fakeData.Expression);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.ElementType).Returns(fakeData.ElementType);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.GetEnumerator()).Returns(fakeData.GetEnumerator());

            Expression <Func <FakeEmployee, bool> > filter = null;

            Assert.That(
                () => repo.GetAll(filter),
                Throws.InstanceOf <ArgumentNullException>().With.Message.Contains("Filter expression"));
        }
Пример #2
0
        public void ShouldPassCorrectly_WhenFilterParameterIsValid()
        {
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            var fakeData = new List <FakeEmployee>()
            {
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
            }
            .AsQueryable();

            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Provider).Returns(fakeData.Provider);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Expression).Returns(fakeData.Expression);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.ElementType).Returns(fakeData.ElementType);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.GetEnumerator()).Returns(fakeData.GetEnumerator());

            Expression <Func <FakeEmployee, bool> > filter = (FakeEmployee empl) => empl.FirstName.Equals("Alexander");

            var actualResult = repo.GetAll(filter);

            Assert.That(actualResult.Count, Is.EqualTo(0));
        }
Пример #3
0
        public void GetAll_ShouldReturnAllData_WhenIsCalled()
        {
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            // Setup Data
            var fakeModel = new Mock <FakeEmployee>();

            var fakeData = new List <FakeEmployee>()
            {
                fakeModel.Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object
            }
            .AsQueryable();

            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Provider).Returns(fakeData.Provider);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Expression).Returns(fakeData.Expression);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.ElementType).Returns(fakeData.ElementType);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.GetEnumerator()).Returns(fakeData.GetEnumerator());

            var employees = repo.GetAll();

            Assert.AreEqual(fakeData.Count(), employees.Count());
        }
Пример #4
0
        public void Constructor_ShouldCreateInstanceCorrectly_WhenParameterIsSetCorrectly()
        {
            var mockedDbContext = new Mock <ISalaryCalculatorDbContext>();

            var repository = new SalaryCalculatorRepository <FakeEmployee>(mockedDbContext.Object);

            Assert.IsInstanceOf(typeof(IRepository <FakeEmployee>), repository);
        }
Пример #5
0
        public void Update_ShouldThrowArgumentNullException_WhenEntityIsNullable()
        {
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            Assert.That(() => repo.Update(null), Throws.InstanceOf <ArgumentNullException>().With.Message.Contains("Entity cannot be null"));
        }
Пример #6
0
        public void Delete_ShouldThrowArgumentNullException_WhenEntityIsNullable()
        {
            // Arrange
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            // Act & Assert
            Assert.That(() => repo.Delete(null), Throws.InstanceOf <ArgumentNullException>().With.Message.Contains("The argument is null."));
        }
Пример #7
0
        public void AddMethod_ShouldInvokedOnce_WhenParameterIsPassedCorrectly()
        {
            var fakeDbSet = new Mock <DbSet <FakeEmployee> >();

            var fakeDbModel   = new FakeEmployee();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(fakeDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            // Act
            repo.Add(fakeDbModel);

            // Assert
            mockDbContext.Verify(mock => mock.Entry(It.IsAny <FakeEmployee>()), Times.Once());
        }
Пример #8
0
        public void CreateInstance_WhenAllParametersArePassedCorrectly()
        {
            // Arrange
            ISalaryCalculatorDbContext dbContext = new SalaryCalculatorDbContext();

            IRepository <User>             userRepo     = new SalaryCalculatorRepository <User>(dbContext);
            IRepository <EmployeePaycheck> paycheckRepo = new SalaryCalculatorRepository <EmployeePaycheck>(dbContext);
            IRepository <RemunerationBill> billRepo     = new SalaryCalculatorRepository <RemunerationBill>(dbContext);
            IRepository <SelfEmployment>   selfRepo     = new SalaryCalculatorRepository <SelfEmployment>(dbContext);

            ICacheService            cacheService          = new HttpCacheService();
            IUserService             userService           = new UserService(userRepo);
            IEmployeePaycheckService paycheckService       = new EmployeePaycheckService(paycheckRepo);
            IRemunerationBillService billService           = new RemunerationBillService(billRepo);
            ISelfEmploymentService   selfEmploymentService = new SelfEmploymentService(selfRepo);

            // Act & Assert
            Assert.IsInstanceOf <HomeController>(new HomeController(cacheService, userService, paycheckService, billService, selfEmploymentService));
        }
Пример #9
0
        public void ShouldReturnCorrectCountOfItem_WhenItemIsFound()
        {
            var mockDbSet     = new Mock <DbSet <FakeEmployee> >();
            var mockDbContext = new Mock <ISalaryCalculatorDbContext>();

            mockDbContext.Setup(mock => mock.Set <FakeEmployee>()).Returns(mockDbSet.Object);

            var repo = new SalaryCalculatorRepository <FakeEmployee>(mockDbContext.Object);

            // Setup Data
            var fakeModel = new Mock <FakeEmployee>();

            fakeModel.SetupGet(model => model.Id).Returns(1);

            var fakeData = new List <FakeEmployee>()
            {
                fakeModel.Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object,
                new Mock <FakeEmployee>().Object
            }
            .AsQueryable();

            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Provider).Returns(fakeData.Provider);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.Expression).Returns(fakeData.Expression);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.ElementType).Returns(fakeData.ElementType);
            mockDbSet.As <IQueryable <FakeEmployee> >().Setup(m => m.GetEnumerator()).Returns(fakeData.GetEnumerator());

            Expression <Func <FakeEmployee, bool> > filter = (FakeEmployee model) => model.Id == 1;

            var actualReturnedCollection = repo.GetAll(filter);

            var expectedCollection = new List <FakeEmployee>()
            {
                fakeModel.Object
            };

            Assert.That(actualReturnedCollection.Count(), Is.Not.Null.And.EquivalentTo(expectedCollection));
        }