コード例 #1
0
        public static void Data <TDbContext, TSource>(this MockDbSet <TDbContext, TSource> mockDbSet, IList <TSource> list)
            where TDbContext : class
            where TSource : class
        {
            if (list == null)
            {
                throw new NullReferenceException("list is null at WithData");
            }

            var data = list.AsQueryable();

            mockDbSet.DbSet.As <IQueryable <TSource> >().Setup(m => m.Provider).Returns(data.Provider);
            mockDbSet.DbSet.As <IQueryable <TSource> >().Setup(m => m.Expression).Returns(data.Expression);
            mockDbSet.DbSet.As <IQueryable <TSource> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockDbSet.DbSet.As <IQueryable <TSource> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            Type type        = typeof(IDbSet <TSource>);
            Type contextType = typeof(TDbContext);
            ParameterExpression parameter = Expression.Parameter(contextType);
            PropertyInfo        info      = contextType.GetProperties().First(pi => pi.PropertyType == type);
            MemberExpression    body      = Expression.Property(parameter, info);
            dynamic             func      = Expression.Lambda(body, parameter);

            mockDbSet.DbContext.SetupProperty(func, mockDbSet.DbSet.Object);
        }
コード例 #2
0
        public void ReturnCorrectResult()
        {
            // Arrange
            var mockedCollection = Utils.GetLakesCollection();
            var mockedDbSet      = MockDbSet.Mock(mockedCollection.AsQueryable());

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Lakes).Returns(mockedDbSet.Object);

            var lakeService = new LakeService(mockedDbContext.Object);

            // Act
            var result = lakeService.GetAll();

            // Assert
            Assert.IsTrue(result.Count() == mockedCollection.Count);
            var index = 0;

            foreach (var lake in result)
            {
                Assert.AreEqual(mockedCollection[index].Name, lake.Name);
                Assert.AreEqual(mockedCollection[index].Id, lake.Id);
                index++;
            }
        }
        public void ReturnNull_IfIdNotMatch()
        {
            // Arrange
            var mockedGalleriesCollection = Utils.GetVideoGalleriesCollection();

            // Add videos for every gallery, so there won't be empty gallery in the context.
            foreach (var gallery in mockedGalleriesCollection)
            {
                gallery.Videos.Add(new Video()
                {
                    Title = "First video"
                });
                gallery.Videos.Add(new Video()
                {
                    Title = "Second video"
                });
            }

            var searchedGalleryId = Guid.NewGuid().ToString();

            var mockedDbSet     = MockDbSet.Mock(mockedGalleriesCollection.AsQueryable());
            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.VideoGalleries).Returns(mockedDbSet.Object);

            var videoService = new VideoService(mockedDbContext.Object);

            // Act
            var videos = videoService.GetVideosFromGallery(searchedGalleryId);

            // Assert
            Assert.IsNull(videos);
        }
コード例 #4
0
        public async Task Index_returns_two_newest_listings()
        {
            // Create some test data
            var data = new List<Listing>
            {
                new Listing { ListingId = 1 },
                new Listing { ListingId = 4 },
                new Listing { ListingId = 2 },
                new Listing { ListingId = 3 }
            };

            // TODO Create a mock set and context
            var set = new MockDbSet<Listing>()
                .SetupSeedData(data)
                .SetupLinq();

            var context = new Mock<FakeEstateContext>();
            context.Setup(c => c.Listings).Returns(set.Object);

            // TODO Create a HomeController and invoke the Index action
            var controller = new HomeController(context.Object);
            var result = await controller.Index();

            // TODO Check the results
            var listings = (List<Listing>)result.Model;
            Assert.AreEqual(2, listings.Count());
            Assert.AreEqual(4, listings[0].ListingId);
            Assert.AreEqual(3, listings[1].ListingId);
        }
コード例 #5
0
        public void CreateNewGallery_IfNotExist_AndAddVideoToGallery()
        {
            // Arrange
            var video = new Video()
            {
                Title = "Test video"
            };
            var mockedGallery = Utils.GetEmptyVideoGallery();
            var mockedDbSet   = MockDbSet.Mock(mockedGallery.AsQueryable());

            mockedDbSet.Setup(d => d.Add(It.IsAny <VideoGallery>())).Callback <VideoGallery>((g) => mockedGallery.Add(g));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.VideoGalleries).Returns(mockedDbSet.Object);

            var videoService   = new VideoService(mockedDbContext.Object);
            var newGalleryName = "Test";

            // Act
            videoService.AddVideoToGallery(newGalleryName, video);

            // Assert
            Assert.IsTrue(mockedDbContext.Object.VideoGalleries.Count() == 1);
            Assert.IsTrue(mockedDbContext.Object.VideoGalleries.First().Name == newGalleryName);
            Assert.IsTrue(mockedDbContext.Object.VideoGalleries.First().Videos.Count == 1);
            Assert.AreEqual(mockedDbContext.Object.VideoGalleries.First().Videos.First(), video);
        }
        public void AddImageToGallery_IfNameMatch()
        {
            // Arrange
            var image   = new Image();
            var gallery = new ImageGallery()
            {
                Name = "Test gallery"
            };

            var mockedCollection = new List <ImageGallery>()
            {
                gallery
            };
            var mockedDbSet = MockDbSet.Mock(mockedCollection.AsQueryable());

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.ImageGalleries).Returns(mockedDbSet.Object);

            var imageGalleryService = new ImageGalleryService(mockedDbContext.Object);

            // Act
            imageGalleryService.AddImageToGallery(gallery.Name, image);

            // Assert
            Assert.IsTrue(gallery.Images.Count == 1);
            Assert.IsTrue(gallery.Images.Contains(image));
        }
        public void AddImageToGallery_IfIdMatch()
        {
            // Arrange
            var image   = new Image();
            var gallery = new ImageGallery()
            {
                Name = "Test gallery"
            };

            var mockedCollection = new List <ImageGallery>()
            {
                gallery
            };
            var mockedDbSet = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Find(It.IsAny <object[]>())).Returns <object[]>(ids => mockedCollection.FirstOrDefault(d => d.Id == ids[0].ToString()));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.ImageGalleries).Returns(mockedDbSet.Object);

            var imageGalleryService = new ImageGalleryService(mockedDbContext.Object);

            // Act
            imageGalleryService.AddImageToGallery(image, gallery.Id);

            // Assert
            Assert.IsTrue(gallery.Images.Count == 1);
            Assert.IsTrue(gallery.Images.Contains(image));
        }
コード例 #8
0
ファイル: MockDbSetTests.cs プロジェクト: Halceyon/Moq.EF
        public void Test_GetQueryableMockDbSet_Empty()
        {
            var fakeTableDbSet = MockDbSet.GetQueryableMockDbSet <FakeTable>(@"");

            _dataContext.Setup(d => d.FakeTables).Returns(fakeTableDbSet.Object);
            Assert.IsNotNull(_dataContext.Object.FakeTables);
        }
コード例 #9
0
        public void AddLakeToDbContext()
        {
            // Arrange
            var lake = new Lake()
            {
                Name = "Test lake"
            };
            var mockedCollection = new List <Lake>();
            var mockedDbSet      = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Add(It.IsAny <Lake>())).Callback <Lake>((l) => mockedCollection.Add(l));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Lakes).Returns(mockedDbSet.Object);

            var lakeService = new LakeService(mockedDbContext.Object);

            // Act
            lakeService.Add(lake);

            // Assert
            Assert.IsTrue(mockedCollection.Count == 1);
            Assert.AreEqual(lake, mockedCollection[0]);
        }
コード例 #10
0
        public void GetProductsCountByPhrase_FullCollection_ReturnCountComplexNames()
        {
            Mock <IStoreContext> mock = new Mock <IStoreContext>();

            mock.Setup(m => m.Products).Returns(MockDbSet.GetMockDbSet(new List <Product> {
                new Product {
                    Id = 1, Name = "ProductNameIsEasy", Price = 10, CategoryId = 3
                },
                new Product {
                    Id = 2, Name = "ProductName2345", Price = 20, CategoryId = 3
                },
                new Product {
                    Id = 3, Name = "ProductName3", Price = 10, CategoryId = 4
                },
                new Product {
                    Id = 4, Name = "Product4", Price = 25, CategoryId = 5
                },
                new Product {
                    Id = 5, Name = "Product5", Price = 30, CategoryId = 6
                }
            }).Object);

            IProductRepository repo = new ProductRepository(mock.Object);

            var result = repo.GetProductsCountByPhrase("Name");

            Assert.AreEqual(result, 3);
        }
コード例 #11
0
        public void SetImageIsConfirmed_ToTrue_IfIdMatch()
        {
            // Arrange
            var mockedCollection = new List <Image>()
            {
                new Image()
                {
                    IsConfirmed = true
                },
                new Image()
                {
                    IsConfirmed = false
                },
                new Image()
                {
                    IsConfirmed = true
                },
            };
            var mockedDbSet = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Find(It.IsAny <object[]>())).Returns <object[]>(ids => mockedCollection.FirstOrDefault(d => d.Id == ids[0].ToString()));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Images).Returns(mockedDbSet.Object);
            var service         = new ImageGalleryService(mockedDbContext.Object);
            var searchedImageId = mockedCollection[1].Id;

            // Act
            service.ConfirmImage(searchedImageId);

            // Assert
            Assert.IsTrue(mockedCollection[1].IsConfirmed);
        }
        public void ReturnCorectResult_IfIdMatch()
        {
            // Arrange
            var mockedGalleriesCollection = Utils.GetVideoGalleriesCollection();

            var searchedGallery   = mockedGalleriesCollection[1];
            var searchedGalleryId = searchedGallery.Id;

            searchedGallery.Videos.Add(new Video()
            {
                Title = "First video"
            });
            searchedGallery.Videos.Add(new Video()
            {
                Title = "Second video"
            });

            var mockedDbSet     = MockDbSet.Mock(mockedGalleriesCollection.AsQueryable());
            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.VideoGalleries).Returns(mockedDbSet.Object);

            var videoService = new VideoService(mockedDbContext.Object);

            // Act
            var videos = videoService.GetVideosFromGallery(searchedGalleryId);

            // Assert
            Assert.IsTrue(videos.Count() == 2);
            Assert.IsTrue(videos.First().Title == "First video");
            Assert.IsTrue(videos.Last().Title == "Second video");
        }
コード例 #13
0
        public void AddImageGalleryToDbContext()
        {
            // Arrange
            var gallery = new ImageGallery()
            {
                Name = "Test gallery"
            };
            var mockedCollection = new List <ImageGallery>();
            var mockedDbSet      = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Add(It.IsAny <ImageGallery>())).Callback <ImageGallery>((g) => mockedCollection.Add(g));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.ImageGalleries).Returns(mockedDbSet.Object);

            var imageGallertService = new ImageGalleryService(mockedDbContext.Object);

            // Act
            imageGallertService.Add(gallery);

            // Assert
            Assert.IsTrue(mockedCollection.Count == 1);
            Assert.AreEqual(gallery, mockedCollection[0]);
        }
コード例 #14
0
ファイル: UofTests.cs プロジェクト: IriyaKun/WorkSite
        public void ShouldFindUser()
        {
            var user = new User()
            {
                Email          = "*****@*****.**",
                Guid           = System.Guid.NewGuid().ToString(),
                HashedPassword = "******",
                Name           = "name",
                Role           = "admin",
                Surname        = "dksk"
            };

            var mockSet = new MockDbSet <User>();

            var mockContext = new Mock <WorkSiteDbContext>();

            mockContext.Setup(c => c.Set <User>()).Returns(mockSet.Object);

            User res;

            using (var uow = new WorkSiteUow(mockContext.Object))
            {
                uow.Users.Create(user);
                uow.Save();
                res = uow.Users.Read(user.Guid);
            }
            Assert.Null(res);
        }
コード例 #15
0
ファイル: UofTests.cs プロジェクト: IriyaKun/WorkSite
        public void ShouldRemoveUserInMemory()
        {
            var user = new User()
            {
                Email          = "*****@*****.**",
                Guid           = System.Guid.NewGuid().ToString(),
                HashedPassword = "******",
                Name           = "name",
                Role           = "admin",
                Surname        = "dksk"
            };

            var mockSet = new MockDbSet <User>();

            var mockContext = new Mock <WorkSiteDbContext>();

            mockContext.Setup(c => c.Set <User>()).Returns(mockSet.Object);

            using (var uow = new WorkSiteUow(mockContext.Object))
            {
                uow.Users.Create(user);
                uow.Save();
                uow.Users.Delete(user.Guid);
                uow.Save();
            }

            mockSet.Verify(u => u.Remove(It.IsNotIn(user)), Times.Never);
        }
コード例 #16
0
        public void DeleteCustomerByIdShouldCauseCustomerToBeNotContainedByDbSet()
        {
            // Arrange
            var mockCustomer = Builder <DeliveryPerson> .CreateNew().Build();

            var initialList = new DeliveryPerson[] { mockCustomer };
            var mockDbSet   = new MockDbSet <DeliveryPerson>(initialList);
            var mockContext = new Mock <IContext>();

            mockContext.SetupProperty <IDbSet <DeliveryPerson> >(_ => _.DeliveryPersons)
            .SetupGet(_ => _.DeliveryPersons)
            .Returns(mockDbSet);
            mockContext.Setup(_ => _.Save())
            .Callback(mockDbSet.Save);
            Context    = mockContext.Object;
            Repository = new DeliveryPersonRepository(Context);

            // Act
            Repository.DeleteDeliveryPersonById(mockCustomer.Id);

            // Assert
            var contains = mockDbSet.Contains(mockCustomer);

            Assert.IsFalse(contains);
        }
コード例 #17
0
        public void UpdateCustomerDetailsShouldCauseCustomerInDbSetToBeUpdated()
        {
            // Arrange
            var mockCustomer = Builder <Customer> .CreateNew().Build();

            var initialList = new Customer[] { mockCustomer };
            var mockDbSet   = new MockDbSet <Customer>(initialList);
            var mockContext = new Mock <IContext>();

            mockContext.SetupProperty <IDbSet <Customer> >(_ => _.Customers)
            .SetupGet(_ => _.Customers)
            .Returns(mockDbSet);
            mockContext.Setup(_ => _.Save())
            .Callback(mockDbSet.Save);
            Context    = mockContext.Object;
            Repository = new CustomerRepository(Context);
            var updates = Builder <Customer> .CreateNew().And(_ => { _.Id = mockCustomer.Id; }).Build();

            // Act
            Repository.UpdateCustomerDetails(updates);
            var updatedCustomer = mockDbSet.Find(mockCustomer.Id);

            // Assert
            bool updated = mockCustomer.Address == updatedCustomer.Address &&
                           mockCustomer.FirstName == updatedCustomer.FirstName &&
                           mockCustomer.Id == updatedCustomer.Id &&
                           mockCustomer.LastName == updatedCustomer.LastName &&
                           mockCustomer.MobileNumber == updatedCustomer.MobileNumber;

            Assert.IsTrue(updated);
        }
コード例 #18
0
        public void ReturnCorrectResult_IfIdMatch()
        {
            // Arrange
            var gallery = new ImageGallery()
            {
                Name = "Test gallery"
            };

            var mockedCollection = new List <ImageGallery>()
            {
                new ImageGallery(),
                gallery,
                new ImageGallery()
            };

            var mockedDbSet = MockDbSet.Mock(mockedCollection.AsQueryable());

            mockedDbSet.Setup(d => d.Find(It.IsAny <object[]>())).Returns <object[]>(ids => mockedCollection.FirstOrDefault(d => d.Id == ids[0].ToString()));

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.ImageGalleries).Returns(mockedDbSet.Object);

            var imageGalleryService = new ImageGalleryService(mockedDbContext.Object);

            // Act
            var result = imageGalleryService.FindById(gallery.Id);

            // Assert
            Assert.AreEqual(gallery, result);
        }
コード例 #19
0
        public void Can_use_linq_opeartors()
        {
            var data = new List <Blog>
            {
                new Blog {
                    BlogId = 1
                },
                new Blog {
                    BlogId = 2
                },
                new Blog {
                    BlogId = 3
                }
            };

            var set = new MockDbSet <Blog>()
                      .SetupSeedData(data)
                      .SetupLinq();

            var result = set.Object
                         .Where(b => b.BlogId > 1)
                         .OrderByDescending(b => b.BlogId)
                         .ToList();

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(3, result[0].BlogId);
            Assert.AreEqual(2, result[1].BlogId);
        }
コード例 #20
0
        public async Task Index_returns_two_newest_listings()
        {
            // Create some test data
            var data = new List<Product>
                {
                    new Product { ProductID = 1 },
                    new Product { ProductID = 4 },
                    new Product { ProductID = 2 },
                    new Product { ProductID = 3 }
                };

            //Create a mock set and context
            MockDbSet<Product> set = new MockDbSet<Product>().SetupSeedData(data).SetupLinq();

            var context = new Mock<AdventureWorksContext>();
            context.Setup(c => c.Products).Returns(set.Object);

            //Create a Controller and invoke the Index action
            List<Product> result = await context.Object.Products.ToListAsync();

            //Check the results
            List<Product> products = result;
            Assert.AreEqual(4, products.Count());
            Assert.AreEqual(1, products[0].ProductID);
            Assert.AreEqual(4, products[1].ProductID);
        }
コード例 #21
0
        public void UpdateCustomerDetailsShouldCauseCustomerInDbSetToBeUpdated()
        {
            // Arrange
            var mockDPerson = Builder <DeliveryPerson> .CreateNew().Build();

            var initialList = new DeliveryPerson[] { mockDPerson };
            var mockDbSet   = new MockDbSet <DeliveryPerson>(initialList);
            var mockContext = new Mock <IContext>();

            mockContext.SetupProperty <IDbSet <DeliveryPerson> >(_ => _.DeliveryPersons)
            .SetupGet(_ => _.DeliveryPersons)
            .Returns(mockDbSet);
            mockContext.Setup(_ => _.Save())
            .Callback(mockDbSet.Save);
            Context    = mockContext.Object;
            Repository = new DeliveryPersonRepository(Context);
            var updates = Builder <DeliveryPerson> .CreateNew().And(_ => { _.Id = mockDPerson.Id; }).Build();

            // Act
            Repository.UpdateDeliveryPersonDetails(updates);
            var updatedCustomer = mockDbSet.Find(mockDPerson.Id);

            // Assert
            bool updated = mockDPerson.FirstName == updatedCustomer.FirstName &&
                           mockDPerson.Id == updatedCustomer.Id &&
                           mockDPerson.LastName == updatedCustomer.LastName;

            Assert.IsTrue(updated);
        }
コード例 #22
0
        public void ReturnCorrectResult_IfCollectionIsNotEmpty()
        {
            // Arrange
            var fishCollection = Utils.GetFishCollection();
            var mockedDbSet    = MockDbSet.Mock(fishCollection.AsQueryable());

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Fish).Returns(mockedDbSet.Object);

            var fishService = new FishService(mockedDbContext.Object);

            // Act
            var allFish = fishService.GetAll();

            // Assert
            Assert.IsTrue(allFish.Count() == fishCollection.Count);
            var index = 0;

            foreach (var fish in allFish)
            {
                Assert.AreEqual(fishCollection[index].Name, fish.Name);
                Assert.AreEqual(fishCollection[index].ImageUrl, fish.ImageUrl);
                index++;
            }
        }
コード例 #23
0
        public async Task GetItemAsync_Should_ReturnItemWithSortedRelatedComments()
        {
            // Arrange
            var item = new Item {
                Id = this._itemId
            };

            this._items.Setup(r => r.FindAsync(this._itemId)).ReturnsAsync(item);
            var comments = Enumerable.Range(0, 100).Select(_ =>
                                                           new Comment
            {
                ItemId = this._random.Next() % 2 == 0 ? this._itemId : this._itemId + 1,
                Author = new ApplicationUser {
                    UserName = "******"
                },
                CreatedAt = new DateTime(2014, 05, this._random.Next(31) + 1)
            }
                                                           ).ToList();
            var dbSet = new MockDbSet <Comment>().SetupSeedData(comments).SetupLinq();

            this._comments.SetupGet(r => r.Query).Returns(dbSet.Object);

            // Act
            Item result = await this._service.GetItemAsync(this._itemId);

            // Assert
            this._comments.VerifyGet(r => r.Query, Times.Once());
            result.Should().NotBeNull();
            result.Comments.Should().NotBeNull();
            result.Comments.ToList().ForEach(c => c.ItemId.Should().Be(this._itemId));
            result.Comments.Should().BeInAscendingOrder(c => c.CreatedAt);
        }
コード例 #24
0
        public void Index_shows_most_expensive_first()
        {
            // Arrange
            var data = new List<Bike>
            {
                new Bike { Retail = 100M },
                new Bike { Retail = 200M },
                new Bike { Retail = 50M }
            };

            var set = new MockDbSet<Bike>()
                .SetupSeedData(data)
                .SetupLinq();

            var context = new Mock<CycleContext>();
            context.Setup(c => c.Bikes).Returns(set.Object);

            var controller = new BikesController(context.Object);

            // Act
            var result = controller.Index() as ViewResult;

            // Assert
            var bikes = result.Model as IEnumerable<Bike>;
            Assert.AreEqual(200M, bikes.First().Retail);
        }
コード例 #25
0
        public async Task GetItemAsync_Should_SetCommentAuthorNameFromAuthor()
        {
            // Arrange
            var item = new Item {
                Id = this._itemId
            };

            this._items.Setup(r => r.FindAsync(this._itemId)).ReturnsAsync(item);
            var authorName = "Homer";
            var comment    = new Comment
            {
                ItemId = this._itemId,
                Author = new ApplicationUser {
                    UserName = authorName
                }
            };
            var dbSet = new MockDbSet <Comment>().SetupSeedData(new[] { comment }).SetupLinq();

            this._comments.SetupGet(r => r.Query).Returns(dbSet.Object);

            // Act
            Item result = await this._service.GetItemAsync(this._itemId);

            // Assert
            result.Comments.Should().HaveCount(1);
            result.Comments.Single().AuthorName.Should().Be(authorName);
        }
コード例 #26
0
 public void Setup()
 {
     var mockDbSet = new MockDbSet<FakeEntity>(TestData.GetFakeEntities());
     _mockDbContext = new Mock<IDbContext>();
     _mockDbContext.Setup(m => m.Set<FakeEntity>()).Returns(mockDbSet);
     _testRepository = new EFRepository<FakeEntity>(_mockDbContext.Object);
 }
        public void ReturnTrue_IfGalleryExist_AndVideoIsRemoved()
        {
            // Arrange
            var mockedGalleries = Utils.GetVideoGalleriesCollection();
            var video           = new Video();
            var gallery         = mockedGalleries.First();

            gallery.Videos.Add(video);

            var mockedDbSet = MockDbSet.Mock(mockedGalleries.AsQueryable());

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.VideoGalleries).Returns(mockedDbSet.Object);

            var videoService = new VideoService(mockedDbContext.Object);

            // Confirm that the gallery contains the video before remove it
            Assert.IsTrue(gallery.Videos.Count == 1);
            Assert.AreEqual(gallery.Videos.First(), video);

            // Act
            var isRemoved = videoService.RemoveVideoFromGallery(gallery.Name, video.Id);

            Assert.IsTrue(gallery.Videos.Count == 0);
            Assert.IsTrue(isRemoved);
        }
コード例 #28
0
        public void ReturnCorrectResult_IfCollectionIsNotEmpty()
        {
            // Arrange
            var mockedCollection = Utils.GetLocationsCollection();
            var mockedDbSet      = MockDbSet.Mock(mockedCollection.AsQueryable());

            var mockedDbContext = new Mock <IDatabaseContext>();

            mockedDbContext.Setup(c => c.Locations).Returns(mockedDbSet.Object);

            var locationService = new LocationService(mockedDbContext.Object);

            // Act
            var result = locationService.GetAll();

            // Assert
            Assert.IsTrue(result.Count() == 3);
            var index = 0;

            foreach (var location in result)
            {
                Assert.AreEqual(mockedCollection[index].Name, location.Name);
                index++;
            }
        }
コード例 #29
0
        public void CreateShouldAppendToDatabaseAndSaveChanges()
        {
            var businessUserDb = new List <BusinessUser>();
            var mockSet        = new MockDbSet <BusinessUser>(businessUserDb);
            var contextMock    = new Mock <SomeDataContext>();

            contextMock.Setup(c => c.BusinessUsers).Returns(mockSet.Object);

            var createBusinessUserCommand = new CreateBusinessUserCommand(Guid.NewGuid(),
                                                                          new IdentityId("SomeId"),
                                                                          "SomeLocation",
                                                                          "SomeLocale",
                                                                          "SomeGender",
                                                                          new Email("*****@*****.**"),
                                                                          "SomeFirstName",
                                                                          "SomeMiddleName",
                                                                          "SomeLastName"
                                                                          );
            var businessUserRepository = new BusinessUserRepository(contextMock.Object);

            businessUserRepository.Create(createBusinessUserCommand);

            contextMock.Verify(x => x.SaveChanges(), Times.Once);
            Assert.Single(businessUserDb);
        }
コード例 #30
0
        public void SaveSomeDataShoulUpdateSomeDataInDatabaseAndSaveChanges()
        {
            var updateSomeDataCommand = BuildUpdateSomeDataCommand();
            var businessUser          = new BusinessUser
            {
                Id       = Guid.NewGuid(),
                Gender   = "SomeGender",
                Locale   = "SomeLocale",
                Location = "SomeLocation",
                Identity = new ApplicationUser
                {
                    Email = "*****@*****.**"
                }
            };
            var someDataDb = SomeDataMapper.UpdateSomeDataCommandToPersistanceModel(updateSomeDataCommand);

            someDataDb.BusinessUserId = businessUser.Id;

            var someDataDbSet = new List <SomeData>
            {
                someDataDb
            };
            var businessUserDb = new List <BusinessUser>
            {
                businessUser
            };

            var businessUserMockSet = new MockDbSet <BusinessUser>(businessUserDb);
            var someDataMockSet     = new MockDbSet <SomeData>(someDataDbSet);
            var contextMock         = new Mock <SomeDataContext>();

            contextMock.Setup(c => c.SomeData).Returns(someDataMockSet.Object);
            contextMock.Setup(c => c.BusinessUsers).Returns(businessUserMockSet.Object);

            var someDataRepository = new SomeDataWriteRepository(contextMock.Object);

            var updatedSomeData = SomeAggregate.Create(updateSomeDataCommand.SomeDataId,
                                                       "NewFirstName",
                                                       "NewMiddleName",
                                                       "NewLastName",
                                                       "NewTitle",
                                                       new Color("#c1d0c3"),
                                                       DateTime.Now,
                                                       new FacebookUrl(null),
                                                       Guid.NewGuid());

            someDataRepository.Save(updatedSomeData);
            var updatedDb = someDataRepository.Get(updateSomeDataCommand.SomeDataId);

            contextMock.Verify(x => x.SaveChanges(), Times.Once);
            Assert.Equal(updatedDb.Id, updatedSomeData.Id);
            Assert.Equal(updatedDb.Color, updatedSomeData.Color);
            Assert.Equal(updatedDb.CreationDate, updatedSomeData.CreationDate);
            Assert.Equal(updatedDb.FacebookUrl, updatedSomeData.FacebookUrl);
            Assert.Equal(updatedDb.FirstName, updatedSomeData.FirstName);
            Assert.Equal(updatedDb.LastName, updatedSomeData.LastName);
            Assert.Equal(updatedDb.MiddleName, updatedSomeData.MiddleName);
            Assert.Equal(updatedDb.Title, updatedSomeData.Title);
        }
コード例 #31
0
        public void FindMustReturnNullWhenPredicateReturnsFalseForAllEntities()
        {
            MockDbSet <Person> persons = new MockDbSet <Person>(new[] { new Person {
                                                                            FirstName = "Bob", LastName = "Smith"
                                                                        } });

            Assert.Null(persons.Find(Guid.NewGuid()));
        }
コード例 #32
0
        public void GivenAServiceRequestFulfillment_WhenRemove_ThenContextCallsRemove()
        {
            var expected = TestData.ServiceRequestFulfillments[0];

            Target.Remove(expected);

            MockDbSet.AssertWasCalled(m => m.Remove(expected));
        }
コード例 #33
0
        public void GivenAServiceRequestFulfillment_WhenAdd_ThenAddToContext()
        {
            var expected = TestData.ServiceRequestFulfillments[0];

            Target.Add(expected);

            MockDbSet.AssertWasCalled(m => m.Add(expected));
        }
コード例 #34
0
            public void ReturnsInstance()
            {
                // Arrange -> Act
                var mockObjects = MockDbSet <object> .Of();

                // Assert
                Assert.IsAssignableFrom <DbSet <object> >(mockObjects);
            }
コード例 #35
0
 public MockContext()
 {
     Schedules = new MockDbSet<Schedule>();
     Models = new MockDbSet<Model>();
     Tasks = new MockDbSet<Task>();
     Users = new MockDbSet<User>();
     Parts = new MockDbSet<Part>();
     Makes = new MockDbSet<Make>();
     Vehicles = new MockDbSet<Vehicle>();
 }
コード例 #36
0
        public async Task Can_use_linq_materializer_directly_on_set_async()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var result = await set.Object.ToListAsync();

            Assert.AreEqual(2, result.Count);
        }
コード例 #37
0
        public void Data_is_addded_to_set()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data);

            var result = set.Data.ToArray();
            Assert.AreEqual(2, result.Length);
            Assert.AreSame(data[0], result[0]);
            Assert.AreSame(data[1], result[1]);
        }
コード例 #38
0
        public async Task Can_enumerate_set_async()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var count = 0;
            await set.Object.ForEachAsync(b => count++);

            Assert.AreEqual(2, count);
        }
コード例 #39
0
        public void Can_enumerate_set()
        {
            var data = new List<Blog> { new Blog {},  new Blog {}  };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var count = 0;
            foreach (var item in set.Object)
            {
                count++;
            }

            Assert.AreEqual(2, count);
        }
コード例 #40
0
ファイル: TravelServiceTest.cs プロジェクト: JuninZe/akabow
        public void ValidateTravel_Invalid()
        {
            var mockContext = new Mock<ApplicationDbContext>();

            var locationMockDbSet = new MockDbSet<Location>();
            mockContext.Setup(m => m.Locations).Returns(locationMockDbSet.DbSet.Object);

            var entryCharMockDbSet = new MockDbSet<EntryLocationCharacter>();
            mockContext.Setup(m => m.EntryLocationCharacters).Returns(entryCharMockDbSet.DbSet.Object);

            var service = new TravelService(mockContext.Object);

            var result = service.ValidateTravel("tag", 1);

            Assert.IsFalse(result.IsValid);
            Assert.AreEqual(result.Messages.Count(), 2);
        }
コード例 #41
0
ファイル: TravelServiceTest.cs プロジェクト: JuninZe/akabow
        public void ValidateTravel_Valid()
        {
            var mockContext = new Mock<ApplicationDbContext>();

            var locationMockDbSet = new MockDbSet<Location>();
            locationMockDbSet.Add(new Location { Tag = "tag", Type = ModelEnums.LocationType.City });
            mockContext.Setup(m => m.Locations).Returns(locationMockDbSet.DbSet.Object);

            var entryCharMockDbSet = new MockDbSet<EntryLocationCharacter>();
            entryCharMockDbSet.Add(new EntryLocationCharacter { Arrival = DateTime.Now.AddHours(-1), Character_Id = 1 });
            mockContext.Setup(m => m.EntryLocationCharacters).Returns(entryCharMockDbSet.DbSet.Object);

            var service = new TravelService(mockContext.Object);

            var result = service.ValidateTravel("tag", 1);

            Assert.IsTrue(result.IsValid);
        }
コード例 #42
0
ファイル: TravelServiceTest.cs プロジェクト: JuninZe/akabow
        public void Travel()
        {
            var mockContext = new Mock<ApplicationDbContext>();

            var locationMockDbSet = new MockDbSet<Location>();
            locationMockDbSet.Add(new Location { Tag = "tag", Type = ModelEnums.LocationType.City });
            mockContext.Setup(m => m.Locations).Returns(locationMockDbSet.DbSet.Object);

            var entryCharMockDbSet = new MockDbSet<EntryLocationCharacter>();
            entryCharMockDbSet.Add(new EntryLocationCharacter { Arrival = DateTime.Now.AddHours(-1), Character_Id = 1 });
            mockContext.Setup(m => m.EntryLocationCharacters).Returns(entryCharMockDbSet.DbSet.Object);

            var service = new TravelService(mockContext.Object);

            service.Travel("tag", 1);

            mockContext.Verify(m => m.SaveChanges(), Times.Once());
            Assert.AreEqual(entryCharMockDbSet.Items.Count(), 2);
            Assert.IsNotNull(entryCharMockDbSet.Items.First().Leaves);
            Assert.IsNull(entryCharMockDbSet.Items.Last().Leaves);
        }
コード例 #43
0
        public void Can_use_linq_opeartors()
        {
            var data = new List<Blog> 
            { 
                new Blog { BlogId = 1 }, 
                new Blog { BlogId = 2 },
                new Blog { BlogId = 3}
            };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var result = set.Object
                .Where(b => b.BlogId > 1)
                .OrderByDescending(b => b.BlogId)
                .ToList();

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual(3, result[0].BlogId);
            Assert.AreEqual(2, result[1].BlogId);
        }
コード例 #44
0
        public void Can_use_include_directly_on_set()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var result = set.Object
                .Include(b => b.Posts)
                .ToList();

            Assert.AreEqual(2, result.Count);
        }
コード例 #45
0
        public void Can_use_include_after_linq_operator()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupSeedData(data)
                .SetupLinq();

            var result = set.Object
                .OrderBy(b => b.BlogId)
                .Include(b => b.Posts)
                .ToList();

            Assert.AreEqual(2, result.Count);
        }
コード例 #46
0
        public void Can_add_data_after_setting_up_linq()
        {
            var data = new List<Blog> { new Blog(), new Blog() };

            var set = new MockDbSet<Blog>()
                .SetupLinq()
                .SetupSeedData(data);

            var result = set.Object.ToList();

            Assert.AreEqual(2, result.Count);
        }