Esempio n. 1
0
        public void CreateAd_Should_Succsessfully_Add_To_Repository()
        {
            // Arrange
            var ads      = new List <Ad>();
            var fakeUser = this.mocks.UserRepositoryMock.Object.All()
                           .FirstOrDefault();

            if (fakeUser == null)
            {
                Assert.Fail("Cannot perform test - no users available.");
            }

            this.mocks.AdRepositoryMock
            .Setup(r => r.Add(It.IsAny <Ad>()))
            .Callback((Ad ad) =>
            {
                ad.Owner = fakeUser;
                ads.Add(ad);
            });

            var mockContext = new Mock <IOnlineShopData>();

            mockContext.Setup(c => c.Ads)
            .Returns(this.mocks.AdRepositoryMock.Object);
            mockContext.Setup(c => c.Categories)
            .Returns(this.mocks.CategoryRepositoryMock.Object);
            mockContext.Setup(c => c.Users)
            .Returns(this.mocks.UserRepositoryMock.Object);
            mockContext.Setup(c => c.AdTypes)
            .Returns(this.mocks.AdTypeRepositoryMock.Object);

            var mockUserIdProvider = new Mock <IUserIdProvider>();

            mockUserIdProvider.Setup(uip => uip.GetUserId())
            .Returns(fakeUser.Id);

            var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object);

            this.SetupController(adsController);

            var randomName = Guid.NewGuid().ToString();
            var newAd      = new CreateAdBindingModel
            {
                Name        = randomName,
                Price       = 555,
                TypeId      = 1,
                Description = "Some description.",
                Categories  = new[] { 3, 1, 99 }
            };

            var response = adsController.CreateAd(newAd)
                           .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            mockContext.Verify(c => c.SaveChanges(), Times.Once);
            Assert.AreEqual(1, ads.Count);
            Assert.AreEqual(newAd.Name, ads[0].Name);
        }
        public void CreateAd_WithCorrectData_ShouldSuccessfullyAddAdInRepository()
        {
            // Arrange
            var ads = new List <Ad>();

            // Act
            var mockContext    = new Mock <IOnlineShopData>();
            var fakeAds        = this.mockContainer.AdRepositoryMock.Object.All();
            var fakeAdTypes    = this.mockContainer.AdTypeRepositoryMock.Object.All();
            var fakeCategories = this.mockContainer.CategoryRepositoryMock.Object.All();
            var fakeUsers      = this.mockContainer.ApplicationUserRepositoryMock.Object.All();

            mockContext.Setup(r => r.Ads).Returns(this.mockContainer.AdRepositoryMock.Object);
            mockContext.Setup(r => r.AdTypes).Returns(this.mockContainer.AdTypeRepositoryMock.Object);
            mockContext.Setup(r => r.Categories).Returns(this.mockContainer.CategoryRepositoryMock.Object);
            mockContext.Setup(r => r.ApplicationUsers).Returns(this.mockContainer.ApplicationUserRepositoryMock.Object);
            var fakeUser       = this.mockContainer.ApplicationUserRepositoryMock.Object.All().FirstOrDefault();
            var mockIdProvider = new Mock <IUserIdProvider>();

            if (fakeUser == null)
            {
                Assert.Fail("Cannot perform test no users available.");
            }

            mockIdProvider.Setup(r => r.GetUserId()).Returns(fakeUser.Id);

            var adsController = new AdsController(mockContext.Object, mockIdProvider.Object);

            this.SetupController(adsController);
            this.mockContainer.AdRepositoryMock.Setup(r => r.Add(It.IsAny <Ad>()))
            .Callback((Ad ad) =>
            {
                // ad.Id = 10;   // Uncomment if id is required in the test
                ad.Owner = fakeUser;
                ads.Add(ad);
            });
            var randomName = Guid.NewGuid().ToString();
            var newAd      = new CreateAdBindingModel()
            {
                Name        = randomName,
                Price       = 555,
                TypeId      = 1,
                Description = "Put description here",
                Categories  = new[] { 1, 2 }
            };

            var httpResponse = adsController.CreateAd(newAd).ExecuteAsync(CancellationToken.None).Result;

            // Assert
            mockContext.Verify(c => c.SaveChanges(), Times.Once);
            Assert.AreEqual(1, ads.Count);
            Assert.AreEqual(ads[0].Name, newAd.Name);
        }
Esempio n. 3
0
        public void CreateAd_Should_Successfully_Add_To_Repository()
        {
            var ads = new List <Ad>();

            var fakeUser = _mocks.ApplicationUserRepoMock.Object.All()
                           .FirstOrDefault();

            if (fakeUser == null)
            {
                Assert.Fail("No users to perform the test with.");
            }

            _mocks.AdRepoMock
            .Setup(r => r.Add(It.IsAny <Ad>()))
            .Callback((Ad ad) =>
            {
                ad.Owner = fakeUser;
                ads.Add(ad);
            });

            var mockContext = new Mock <IOnlineShopData>();

            mockContext.Setup(c => c.Ads)
            .Returns(this._mocks.AdRepoMock.Object);
            mockContext.Setup(c => c.AdTypes)
            .Returns(this._mocks.AdTypeRepoMock.Object);
            mockContext.Setup(c => c.Categories)
            .Returns(this._mocks.CategoryRepoMock.Object);
            mockContext.Setup(c => c.Users)
            .Returns(this._mocks.ApplicationUserRepoMock.Object);

            var mockIdProvider = new Mock <IUserIdProvider>();

            mockIdProvider.Setup(ip => ip.GetUserId())
            .Returns(fakeUser.Id);

            var adsController = new AdsController(mockContext.Object, mockIdProvider.Object);

            this.SetupController(adsController);

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

            var newAdd = new CreateAdBindingModel
            {
                Name        = randomName,
                Price       = 555,
                TypeId      = 1,
                Description = "Sample text",
                Categories  = new[] { 1, 2, 3 }
            };

            var response = adsController.CreateAd(newAdd)
                           .ExecuteAsync(CancellationToken.None)
                           .Result;

            Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);

            mockContext.Verify(c => c.SaveChanges(), Times.Once);

            Assert.AreEqual(ads.Count, 1);

            Assert.AreEqual(ads[0].Name, randomName);
        }
Esempio n. 4
0
        public void CreateAd_Should_Successfully_Add_To_Repository()
        {
            var ads = new List<Ad>();
            var fakeUser = this.mocks.UserRepositoryMock.Object.All()
                .FirstOrDefault();
            if (fakeUser == null)
            {
                Assert.Fail("Cannot perform test - no user available.");
            }

            this.mocks.AdRepositoryMock
                .Setup(r => r.Add(It.IsAny<Ad>()))
                .Callback((Ad ad) =>
                {
                    ad.Owner = fakeUser;
                    ads.Add(ad);
                });

            var mockContext = new Mock<IOnlineShopData>();
            mockContext.Setup(c => c.Ads)
                .Returns(this.mocks.AdRepositoryMock.Object);
            mockContext.Setup(c => c.AdTypes)
                .Returns(this.mocks.AdTypeRepositoryMock.Object);
            mockContext.Setup(c => c.Categories)
                .Returns(this.mocks.CategoryRepositoryMock.Object);
            mockContext.Setup(c => c.Users)
                .Returns(this.mocks.UserRepositoryMock.Object);

            var mockIdProvider = new Mock<IUserIdProvider>();
            mockIdProvider.Setup(ip => ip.GetUserId())
                .Returns(fakeUser.Id);

            var adsController = new AdsController(mockContext.Object, mockIdProvider.Object);
            this.SetupController(adsController);

            var randomName = Guid.NewGuid().ToString();
            var newAd = new CreateAdBindingModel
            {
                Name = randomName,
                Price = 555,
                TypeId = 1,
                Description = "Nothing much to say",
                Categories = new[] { 1, 2, 3}
            };

            var response = adsController.CreateAd(newAd)
                .ExecuteAsync(CancellationToken.None).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            mockContext.Verify(c => c.SaveChanges(), Times.Once);

            Assert.AreEqual(1, ads.Count);
            Assert.AreEqual(newAd.Name, ads[0].Name);
        }