コード例 #1
0
 public void Setup()
 {
     ModelMapper.Init();
     ContextMock = DbContextMockFactory.Create<EntityContext>()
                         .MockSetFor(GetEmployees());
     Controller = new EmployeesController(ContextMock.Object);
 }
コード例 #2
0
        public void RunInExpectedTime()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock[] entities =
                new PersonDataEntityMock[]
                {
                    new PersonDataEntityMock() { Id = 1},
                    new PersonDataEntityMock() { Id = 2},
                    new PersonDataEntityMock() { Id = 3},
                    new PersonDataEntityMock() { Id = 4},
                    new PersonDataEntityMock() { Id = 5},
                };

            dbContext.Entry(entities[0]).State = EntityState.Detached;
            dbContext.Entry(entities[1]).State = EntityState.Unchanged;
            dbContext.Entry(entities[2]).State = EntityState.Added;
            dbContext.Entry(entities[3]).State = EntityState.Deleted;
            dbContext.Entry(entities[4]).State = EntityState.Modified;

            // Act & Assert.
            Ensure.ActionRunsInExpectedTime(
                () =>
                {
                    dbContext.DetachAll();
                },
                ExecutionTimeType.Normal);
        }
コード例 #3
0
        public void DetachAllTrackedEntities_WhenDbContextArgumentIsValid()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock[] entities =
                new PersonDataEntityMock[]
                {
                    new PersonDataEntityMock() { Id = 1},
                    new PersonDataEntityMock() { Id = 2},
                    new PersonDataEntityMock() { Id = 3},
                    new PersonDataEntityMock() { Id = 4},
                    new PersonDataEntityMock() { Id = 5},
                };

            dbContext.Entry(entities[0]).State = EntityState.Detached;
            dbContext.Entry(entities[1]).State = EntityState.Unchanged;
            dbContext.Entry(entities[2]).State = EntityState.Added;
            dbContext.Entry(entities[3]).State = EntityState.Deleted;
            dbContext.Entry(entities[4]).State = EntityState.Modified;

            // Act.
            dbContext.DetachAll();

            // Assert.
            foreach (PersonDataEntityMock entity in entities)
            {
                Assert.AreEqual(EntityState.Detached, dbContext.Entry(entity).State);
            }
        }
コード例 #4
0
 public void Initialize()
 {
     // Arrange.
     DbContextMock dbContextMock = new DbContextMock();
     this.EfUnitOfWork = new EfUnitOfWorkMock<PersonDataEntityMock, int>(dbContextMock);
     this.EfRepositoryMock = new EfRepositoryMock<PersonDataEntityMock,int>(this.EfUnitOfWork);
 }
コード例 #5
0
        public void TestGetCompaniesThrowsError()
        {
            DbContextMock.Setup(context => context.Companies)
            .Throws(new Exception("test exception"));

            var result = _companyService.GetAll();

            result.ShouldBeLeft(left => left.Should().Be("can't get company list"));

            DbContextMock.Verify(context => context.Companies);
        }
コード例 #6
0
        public async Task SaveChangesAsyncCalls_CalledOnce_SaveChangesAsyncCallsIsOne()
        {
            // Arrange
            var contextMock = new DbContextMock <TestDbContext>();

            // Act
            await contextMock.Object.SaveChangesAsync();

            // Assert
            contextMock.SaveChangesAsyncCalls.Should().Be(1);
        }
コード例 #7
0
        public void TestGetProduct()
        {
            DbContextMock.Setup(context => context.Products.Find(It.IsAny <long>()))
            .Returns(Product);

            var result = _productService.Get(1);

            result.ShouldBeRight(right => right.Should().BeEquivalentTo(ProductView));

            DbContextMock.Verify(context => context.Products.Find(It.IsAny <long>()));
        }
コード例 #8
0
        public void TestGetProducts()
        {
            DbContextMock.Setup(context => context.Products)
            .ReturnsDbSet(ProductList);

            var result = _productService.GetAll();

            result.ShouldBeRight(right => right.Should().BeEquivalentTo(ProductViewList));

            DbContextMock.Verify(context => context.Products);
        }
コード例 #9
0
        public void TestGetProductNotFound()
        {
            DbContextMock.Setup(context => context.Products.Find(It.IsAny <long>()))
            .Returns(() => null);

            var result = _productService.Get(1);

            result.ShouldBeLeft(left => left.Should().Be("product not found"));

            DbContextMock.Verify(context => context.Products.Find(It.IsAny <long>()));
        }
コード例 #10
0
        public void TestUpdateProductThrowsException()
        {
            DbContextMock.Setup(context => context.Products).
            Throws(TestException());

            var result = _productService.Update(ProductView);

            result.ShouldBeLeft(left => left.Should().Be("can't update product"));

            DbContextMock.Verify(context => context.Products);
        }
コード例 #11
0
        public void TestGetProductsThrowsException()
        {
            DbContextMock.Setup(context => context.Products)
            .Throws(TestException());

            var result = _productService.GetAll();

            result.ShouldBeLeft(left => left.Should().Be("can't get product list"));

            DbContextMock.Verify(context => context.Products);
        }
コード例 #12
0
        public void TestUpdateProductNotFound()
        {
            DbContextMock.Setup(context => context.Products)
            .ReturnsDbSet(new List <Product>());

            var result = _productService.Update(ProductView);

            result.ShouldBeLeft(left => left.Should().Be("product not found"));

            DbContextMock.Verify(context => context.Products);
        }
コード例 #13
0
        public void TestAddExistingProduct()
        {
            DbContextMock.Setup(context => context.Products)
            .ReturnsDbSet(ProductList);

            var result = _productService.Add(ProductView);

            result.ShouldBeLeft(left => left.Should().Be("product already exists"));

            DbContextMock.Verify(context => context.Products);
        }
コード例 #14
0
        public void Initialize()
        {
            var priorities = GetFakeData();

            _dbContextMock = new DbContextMock <DatabaseContext>(DummyOptions);
            var dbSetMock = _dbContextMock.CreateDbSetMock(x => x.Priorities, priorities);

            var repository = new PriorityRepository(_dbContextMock.Object);

            _service = new PriorityService(repository);
        }
コード例 #15
0
        public async Task TestGetServicesByIdAsync()
        {
            var dbContext  = DbContextMock.GetDbContext(nameof(TestGetServicesByIdAsync));
            var controller = new ServiceController(dbContext);

            var response = await controller.GetServiceByIdAsync(1) as ObjectResult;

            var value = response.Value as ISingleResponse <Service>;

            Assert.False(value.DidError);
        }
コード例 #16
0
        public void TestGetProductThrowsException()
        {
            DbContextMock.Setup(context => context.Products.Find(It.IsAny <long>()))
            .Throws(TestException());

            var result = _productService.Get(1);

            result.ShouldBeLeft(left => left.Should().Be("can't get product"));

            DbContextMock.Verify(context => context.Products.Find(It.IsAny <long>()));
        }
コード例 #17
0
        public void TestGetAssigmentsThrowError()
        {
            DbContextMock.Setup(context => context.Assigments).Throws(new Exception("expected exception"));

            var result = _assigmentService.GetAssigments();

            result.ShouldBeLeft(left =>
                                left.Should().Be("can't get assigment list"));

            DbContextMock.Verify(context => context.Assigments);
        }
コード例 #18
0
        public void DetailsWith0UsersShoultReturnNull()
        {
            DbContextMock.CreateDbSetMock(x => x.Users, null);
            UsersController userController = new UsersController(DbContextMock.Object);

            for (int i = 1; i < 10; i++)
            {
                JsonResult result = userController.Details(i).Result;
                Assert.Null(result.Value);
            }
        }
コード例 #19
0
        public void Initialize()
        {
            var statuses = GetFakeData();

            _dbContextMock = new DbContextMock <DatabaseContext>(DummyOptions);
            var dbSetMock = _dbContextMock.CreateDbSetMock(x => x.Statuses, statuses);

            var repository = new StatusRepository(_dbContextMock.Object);

            _service = new StatusService(repository);
        }
        public void DbContextMock_Reset_ShouldResetupSaveChanges()
        {
            var dbContextMock = new DbContextMock <TestDbContext>(Options);

            dbContextMock.RegisterDbSetMock(x => x.Users, new TestDbSetMock());
            Assert.That(dbContextMock.Object.SaveChanges(), Is.EqualTo(55861));
            dbContextMock.Reset();
            Assert.That(dbContextMock.Object.SaveChanges(), Is.EqualTo(0));
            dbContextMock.RegisterDbSetMock(x => x.Users, new TestDbSetMock());
            Assert.That(dbContextMock.Object.SaveChanges(), Is.EqualTo(55861));
        }
コード例 #21
0
        public void DbContextMock_Constructor_PassConnectionString_ShouldPassConnectionStringToMockedClass()
        {
            // Arrange
            var connectionString = @"Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername; Password = myPassword;";

            // Act
            var dbContextMock = new DbContextMock <TestDbContext>(connectionString);

            // Assert
            Assert.That(dbContextMock.Object.Database.Connection.ConnectionString, Is.EqualTo(connectionString));
        }
コード例 #22
0
        public void DeleteWith2Users()
        {
            DbContextMock.CreateDbSetMock(x => x.Users, TwoUsers);
            UsersController userController = new UsersController(DbContextMock.Object);
            List <User>     index          = (List <User>)userController.Delete(1).Result.Value;

            Assert.Single(index);
            Assert.Equal(AlainDeloin.UserName, index[0].UserName);
            index = (List <User>)userController.Delete(2).Result.Value;
            Assert.Empty(index);
        }
コード例 #23
0
        public async Task TestGetCountriesAsync()
        {
            var dbContext  = DbContextMock.GetDbContext(nameof(TestGetCountriesAsync));
            var controller = new CountryController(dbContext);

            var response = await controller.GetCountriesAsync("") as ObjectResult;

            var value = response.Value as IPagedResponse <Country>;

            Assert.False(value.DidError);
        }
コード例 #24
0
        public void SetDbContextProperty_WhenArgumentsAreValid()
        {
            // Arrange.
            DbContextMock dbContextMock = new DbContextMock();

            // Act.
            EfUnitOfWork<PersonDataEntityMock, int> efUnitOfWork = new EfUnitOfWork<PersonDataEntityMock, int>(dbContextMock);

            // Assert.
            Assert.AreSame(dbContextMock, efUnitOfWork.DbContext);
        }
コード例 #25
0
        public void SaveChangesCalls_CalledOnce_SaveChangesCallsIsOne()
        {
            // Arrange
            var contextMock = new DbContextMock <TestDbContext>();

            // Act
            contextMock.Object.SaveChanges();

            // Assert
            contextMock.SaveChangesCalls.Should().Be(1);
        }
コード例 #26
0
        public void SetUp()
        {
            properties = new List <Property>
            {
                new Property {
                    Id      = 1,
                    Address = "Drujba, 6",
                    Area    = 100,
                    Rooms   = 7,
                    Beds    = 3,
                    Rent    = 150
                }
            };

            tenants = new List <Tenant>()
            {
                new Tenant
                {
                    Id             = 1,
                    FirstName      = "Dan",
                    LastName       = "Ivanov",
                    Email          = "*****@*****.**",
                    PhoneNumber    = "0879542734",
                    DateOfMovingIn = DateTime.Now,
                    IsKickedOut    = false,
                    RentedProperty = properties[0]
                }
            };

            payments = new List <Payment>()
            {
                new Payment
                {
                    Id     = 1,
                    Amount = 100,
                    Date   = DateTime.Now,
                    Tenant = tenants[0]
                }
            };

            dbContext = new Mock <RmsContext>();

            dbContext.Setup(p => p.Tenants)
            .Returns(DbContextMock.GetQueryableMockDbSet(tenants));

            dbContext.Setup(p => p.Properties)
            .Returns(DbContextMock.GetQueryableMockDbSet(properties));

            dbContext.Setup(p => p.Payments)
            .Returns(DbContextMock.GetQueryableMockDbSet(payments));

            paymentService = new PaymentService(dbContext.Object);
        }
コード例 #27
0
        public void Test_Add_user()
        {
            DbContext   dbContext  = new DbContextMock("TestAddUser");
            Users       user       = User();
            IUnitOfWork unitOfWork = new UnitOfWork(dbContext  as INutritionalCalculatorContext);
            var         response   = unitOfWork.Users.Add(user);

            dbContext.SaveChanges();
            var response2 = dbContext.Find <Users>(response.UserName);

            Assert.AreEqual(response, dbContext.Find <Users>(response.Id));
        }
コード例 #28
0
        public void Test_Delete_Users()
        {
            DbContext dbContext = new DbContextMock("TestDelete");
            Users     user      = User();

            AddUser(user, dbContext);
            IUnitOfWork unitOfWork = new UnitOfWork(dbContext as INutritionalCalculatorContext);

            unitOfWork.Users.Delete(user);
            dbContext.SaveChanges();
            Assert.AreEqual(null, dbContext.Find <Users>(user.Id));
        }
コード例 #29
0
        public void Test_GetAllEntities()
        {
            DbContext    dbContext = new DbContextMock("TestGetAllEntities");
            List <Users> users     = Users();

            dbContext.AddRange(users);
            dbContext.SaveChanges();
            IUnitOfWork unitOfWork = new UnitOfWork(dbContext as INutritionalCalculatorContext);
            var         response   = unitOfWork.Users.GetAllEntities().Count();

            Assert.AreEqual(2, response);
        }
コード例 #30
0
        public void SetUnitOfWorkProperty_WhenArgumentsAreValid()
        {
            // Arrange.
            DbContextMock dbContextMock = new DbContextMock();
            EfUnitOfWork<PersonDataEntityMock, int> unitOfWorkMock = new EfUnitOfWork<PersonDataEntityMock, int>(dbContextMock);

            // Act.
            EfRepositoryMock<PersonDataEntityMock, int> dataRepository = new EfRepositoryMock<PersonDataEntityMock, int>(unitOfWorkMock);

            // Assert.
            Assert.AreSame(unitOfWorkMock, ((IEfRepository<PersonDataEntityMock, int>)dataRepository).UnitOfWork);
        }
コード例 #31
0
        public void Test_method_Get_all_entities_return_all_entities()
        {
            DbContext dbContextMock = new DbContextMock("TestGetAllEntities");
            var       users         = Users();

            dbContextMock.AddRange(users);
            dbContextMock.SaveChanges();
            ModelRepository <ModelTest> modelRepository = new ModelRepository <ModelTest>(dbContextMock as IDbContext);
            List <ModelTest>            response        = modelRepository.GetAllEntities();

            Assert.AreEqual(users.Count, response.Count);
        }
コード例 #32
0
        public void WithDbSetTest_WithoutEntities_NoEntitiesFound()
        {
            // Arrange Act
            var contextMock = new DbContextMock <TestDbContext>();

            contextMock.WithDbSet(c => c.Entities);

            // Assert
            contextMock.Object.Entities.Should().NotBeNull();
            contextMock.Object.Entities.Should().BeOfType <FakeDbSet <TestDbContext, TestEntity> >();
            contextMock.Object.Entities.ToList().Count.Should().Be(0);
        }
コード例 #33
0
        public void TestInitialize()
        {
            _projectData = new List <Project>
            {
                new Project
                {
                    IdProject              = 1,
                    NameProject            = "Desarrollo de inventario",
                    Description            = "Se debe desarrollar un inventario para una red inmobiliaria",
                    ObjectiveGeneral       = "El objetivo general",
                    ObjectiveImmediate     = "El objetivo inmediato",
                    ObjectiveMediate       = "El objetivo mediato",
                    Methodology            = "SCRUM",
                    Resources              = "Recursos",
                    Status                 = ProjectStatus.ACTIVE,
                    Duration               = 480,
                    Activities             = "Actividades",
                    Responsibilities       = "Responsabilidades",
                    QuantityPracticing     = 2,
                    IdLinkedOrganization   = 1,
                    StaffNumberCoordinator = "ABC123",
                    IdResponsibleProject   = 1
                },
                new Project
                {
                    IdProject              = 2,
                    NameProject            = "Sistema bibliotecario",
                    Description            = "Se debe desarrollar un sistema bibliotecario",
                    ObjectiveGeneral       = "El objetivo general",
                    ObjectiveImmediate     = "El objetivo inmediato",
                    ObjectiveMediate       = "El objetivo mediato",
                    Methodology            = "SCRUM",
                    Resources              = "Recursos",
                    Status                 = ProjectStatus.ACTIVE,
                    Duration               = 360,
                    Activities             = "Actividades",
                    Responsibilities       = "Responsabilidades",
                    QuantityPracticing     = 1,
                    IdLinkedOrganization   = 1,
                    StaffNumberCoordinator = "ABC123",
                    IdResponsibleProject   = 1
                }
            };

            _assignmentData = new List <Assignment>();

            _projectMockSet        = DbContextMock.GetQueryableMockDbSet(_projectData, practicioner => practicioner.IdProject);
            _assignmentMockSet     = DbContextMock.GetQueryableMockDbSet(_assignmentData, assignment => assignment.IdAssignment);
            _projectMockContext    = DbContextMock.GetContext(_projectMockSet);
            _assignmentMockContext = DbContextMock.GetContext(_assignmentMockSet);
            _projectUnitOfWork     = new UnitOfWork(_projectMockContext);
            _assignmentUnitOfWork  = new UnitOfWork(_assignmentMockContext);
        }
コード例 #34
0
 public string AddUser([FromBody] AddUserModel authModel)
 {
     if (CheckUser(authModel.phoneNumber))
     {
         return("null");
     }
     else
     {
         DateTime timeNow     = DateTime.Now;
         string   cultureInfo = "ru-RU";
         var      culture     = new CultureInfo(cultureInfo);
         User     user        = new User()
         {
             phoneNumber = authModel.phoneNumber,
             dateSource  = timeNow.ToString(culture)
         };
         UserInfoModel info = new UserInfoModel()
         {
             phoneNumber = user.phoneNumber,
             name        = authModel.name,
             surname     = authModel.surname,
             gender      = authModel.gender,
             password    = authModel.password,
             city        = authModel.city,
             birthday    = authModel.birthday,
             avatar      = authModel.avatar,
             nickname    = authModel.nickname,
             json        = AddJwt(user.phoneNumber),
         };
         UserReviewPoint point = new UserReviewPoint()
         {
             phoneNumber  = user.phoneNumber,
             reviewPoints = 1000
         };
         try
         {
             using (var context = new AppContext())
             {
                 var contextMock = new DbContextMock <AppContext>();
                 context.Users.Add(user);
                 context.UserInfo.Add(info);
                 context.UserReviewPoints.Add(point);
                 context.SaveChanges();
                 return(JsonConvert.SerializeObject(user));
             }
         }
         catch
         {
             return("Ошибка подключения");
         }
     }
 }
コード例 #35
0
        public void DbContextMock_Reset_ShouldForgetMockedDbQueries()
        {
            // Arrange
            var dbContextMock = new DbContextMock <TestDbContext>(Options);

            // Act
            dbContextMock.RegisterDbQueryMock(x => x.QueryModels, new TestDbQueryMock());

            // Assert
            Assert.Throws <ArgumentException>(() => dbContextMock.RegisterDbQueryMock(x => x.QueryModels, new TestDbQueryMock()));
            dbContextMock.Reset();
            dbContextMock.RegisterDbQueryMock(x => x.QueryModels, new TestDbQueryMock());
        }
コード例 #36
0
        public void ThrowArgumentException_WhenEntityStateIsModified()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock entity = new PersonDataEntityMock();
            dbContext.Entry(entity).State = EntityState.Modified;

            // Act & Assert.
            Ensure.ArgumentExceptionIsThrown(() =>
            {
                dbContext.ThrowIfAttached(entity);
            }, "entity");
        }
コード例 #37
0
        public void RunInExpectedTime()
        {
            // Arrange.
            DbContextMock dbContextMock = new DbContextMock();

            // Act & Assert.
            Ensure.ActionRunsInExpectedTime(
                () =>
                {
                    new EfUnitOfWork<PersonDataEntityMock, int>(dbContextMock);
                },
                ExecutionTimeType.Fast);
        }
コード例 #38
0
        public async Task DbContextMock_Constructor_ShouldSetupSaveChanges()
        {
            // Arrange
            var dbContextMock = new DbContextMock <TestDbContext>("abc");

            // Act
            dbContextMock.RegisterDbSetMock(x => x.Users, new TestDbSetMock());

            // Assert
            Assert.That(dbContextMock.Object.SaveChanges(), Is.EqualTo(55861));
            Assert.That(await dbContextMock.Object.SaveChangesAsync(), Is.EqualTo(55861));
            Assert.That(await dbContextMock.Object.SaveChangesAsync(CancellationToken.None), Is.EqualTo(55861));
        }
コード例 #39
0
        public void ReturnTrue_WhenEntityStateIsModified()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock entity = new PersonDataEntityMock();
            dbContext.Entry(entity).State = EntityState.Modified;

            // Act.
            bool result = dbContext.IsAttached(entity);

            // Assert.
            Assert.IsTrue(result);
        }
コード例 #40
0
 public void Setup()
 {
     ContextMock = DbContextMockFactory
                     .Create<TestContext>()
                     .MockSetFor(CreatePersons().ToArray());
 }
コード例 #41
0
        public void DoNotThrowException_WhenEntityStateIsDetached()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock entity = new PersonDataEntityMock();
            dbContext.Entry(entity).State = EntityState.Detached;

            // Act & Assert.
            Ensure.NoExceptionIsThrown(() =>
            {
                dbContext.ThrowIfAttached(entity);
            });
        }
コード例 #42
0
        public void RunInExpectedTime()
        {
            // Arrange.
            DbContextMock dbContext = new DbContextMock();
            PersonDataEntityMock entity = new PersonDataEntityMock();
            dbContext.Entry(entity).State = EntityState.Detached;

            // Act & Assert.
            Ensure.ActionRunsInExpectedTime(
                () =>
                {
                    dbContext.ThrowIfAttached(entity);
                },
                ExecutionTimeType.Normal);
        }
コード例 #43
0
 public void Cleanup()
 {
     this.DbContextMock = null;
     this.EfUnitOfWork = null;
 }