public void Closing_Ad_As_Owner_Should_Return_200OK() { var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var openAd = fakeAds.FirstOrDefault(ad => ad.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Cannot perform test - no open ads available."); } var mockContext = new Mock <IOnlineShopData>(); mockContext.Setup(c => c.Ads) .Returns(this.mocks.AdRepositoryMock.Object); var mockUserIdProvider = new Mock <IUserIdProvider>(); mockUserIdProvider.Setup(uip => uip.GetUserId()) .Returns(openAd.OwnerId); var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object); this.SetupController(adsController); var response = adsController.CloseAd(openAd.Id) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.IsNotNull(openAd.ClosedOn); Assert.AreEqual(AdStatus.Closed, openAd.Status); }
public void Closing_Ads_As_Non_Owner_Should_Return_400BadRequest() { var fakeAd = this._mocks.AdRepoMock.Object.All() .FirstOrDefault(ad => ad.Status == AdStatus.Open); if (fakeAd == null) { Assert.Fail("No ads available to perform the test."); } var adId = fakeAd.Id; var mockContext = new Mock <IOnlineShopData>(); mockContext.Setup(c => c.Ads) .Returns(this._mocks.AdRepoMock.Object); var mockIdProvider = new Mock <IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()) .Returns("Ivan4o"); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); this.SetupController(adsController); var response = adsController.CloseAd(adId) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(response.StatusCode, HttpStatusCode.Unauthorized); mockContext.Verify(c => c.SaveChanges(), Times.Never); Assert.AreEqual(_mocks.AdRepoMock.Object.All().FirstOrDefault(ad => ad.Id == adId).Status, AdStatus.Open); }
public void CloseAd_AsNotAdOwner_ShouldReturn400BadRequest() { // Arrange var fakeAds = this.mockContainer.AdRepositoryMock.Object.All(); // Act var openAd = fakeAds.FirstOrDefault(a => a.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Cannot perform test, because there are no open ads."); } var mockContext = new Mock <IOnlineShopData>(); mockContext.Setup(c => c.Ads).Returns(this.mockContainer.AdRepositoryMock.Object); var mockProvider = new Mock <IUserIdProvider>(); var fakeUsers = this.mockContainer.ApplicationUserRepositoryMock.Object.All(); var nonExistingUser = fakeUsers.FirstOrDefault(); mockProvider.Setup(ip => ip.GetUserId()).Returns(nonExistingUser.Id); var adsController = new AdsController(mockContext.Object, mockProvider.Object); this.SetupController(adsController); var httpResponse = adsController.CloseAd(openAd.Id).ExecuteAsync(CancellationToken.None).Result; // Assert Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode); Assert.AreEqual(AdStatus.Open, openAd.Status); Assert.IsNull(openAd.ClosedOn); }
public void ClosingAdd_AsOwner_ShouldReturn200Ok() { // Arrange var fakeAds = this.mockContainer.AdRepositoryMock.Object.All(); // Act var openAd = fakeAds.FirstOrDefault(a => a.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Cannot perform test there is no open ads."); } var adId = openAd.Id; var mockContext = new Mock <IOnlineShopData>(); mockContext.Setup(c => c.Ads).Returns(this.mockContainer.AdRepositoryMock.Object); var mockProvider = new Mock <IUserIdProvider>(); mockProvider.Setup(ip => ip.GetUserId()).Returns(openAd.OwnerId); var adsController = new AdsController(mockContext.Object, mockProvider.Object); this.SetupController(adsController); var httpResponse = adsController.CloseAd(adId).ExecuteAsync(CancellationToken.None).Result; // Assert mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.AreEqual(AdStatus.Closed, openAd.Status); Assert.IsNotNull(openAd.ClosedOn); }
public void CloseAdAsNonOwnerShouldReturn401Unauthorized() { var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var openAd = fakeAds.FirstOrDefault(a => a.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Cannot perform test - no open ads available."); } var adId = openAd.Id; var fakeUsers = this.mocks.ApplicationUserRepositoryMock.Object.All(); var foreignUser = fakeUsers.FirstOrDefault(u => u.Id != openAd.OwnerId); var mockContext = new Mock<IOnlineShopData>(); mockContext .Setup(c => c.Ads) .Returns(this.mocks.AdRepositoryMock.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider .Setup(ip => ip.GetUserId()) .Returns(foreignUser.Id); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); this.SetupController(adsController); var response = adsController.CloseAd(adId) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Never); Assert.AreEqual(openAd.Status, AdStatus.Open); }
public void Closing_Ad_As_Owner_Should_Return_200OK() { var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var openAd = fakeAds.FirstOrDefault(ad => ad.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Cannot perform test - no open ads available."); } var adId = openAd.Id; var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(c => c.Ads) .Returns(this.mocks.AdRepositoryMock.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()) .Returns(openAd.Owner.Id); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); this.SetupController(adsController); var response = adsController.CloseAd(adId) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.IsTrue(openAd.ClosedOn != null); Assert.AreEqual(AdStatus.Closed, openAd.Status); }