public void CloseAd_FromNonOwner() { var openAd = mockContainer.AdRepositoryMock.Object.All().FirstOrDefault(ad => ad.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("No ads with open status available"); } var adId = openAd.Id; var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(r => r.Ads).Returns(this.mockContainer.AdRepositoryMock.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(r => r.GetUserId()) .Returns(this.mockContainer.UserRepositoryMock.Object.All().FirstOrDefault(u => u.Id != openAd.OwnerId).Id); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); SetupController(adsController); var resposnse = adsController.CloseAd(adId).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.BadRequest, resposnse.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Never); var stillOpenAd = mockContext.Object.Ads.Find(adId); Assert.AreEqual(AdStatus.Open, stillOpenAd.Status); }
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 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 Closing_Ad_As_NonOwner_Should_Return_400BadRequest() { var openAd = this.mocks.AdRepositoryMock.Object .All() .FirstOrDefault(a => a.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Can not perform this test-no open ads available."); } var adId = openAd.Id; var fakeUsers = this.mocks.UserRepositoryMock.Object; ApplicationUser foreignUser = fakeUsers.All().FirstOrDefault(f => f.Id != openAd.OwnerId); if (foreignUser == null) { Assert.Fail("Can not perform this test - need user who is not the owner "); } var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(m => m.GetUserId()).Returns(foreignUser.Id); var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(m => m.Ads).Returns(this.mocks.AdRepositoryMock.Object); var adsController = new AdsController(mockContext.Object,mockIdProvider.Object); SetupController(adsController); var response = adsController.CloseAd(adId).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.BadRequest,response.StatusCode); }
public void Closing_Ad_As_Owner_Should_Return_200OK() { var fakeAd = this.mocks.AdRepositoryMock.Object.All(); var openAd = fakeAd.FirstOrDefault(f => f.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("Can not perform test -no open ads available."); } var adId = openAd.Id; var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(m => m.Ads).Returns(this.mocks.AdRepositoryMock.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(id => id.GetUserId()).Returns(openAd.OwnerId); 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.OK); mockContext.Verify(m=>m.SaveChanges(),Times.Once); Assert.IsNotNull(openAd.ClosedOn); Assert.AreEqual(openAd.Status,AdStatus.Closed); }
public void TestCloseAds_ShouldCloseAnAd() { var fakeAds = mockContainer.AdRepositoryMock.Object.All(); var openAd = fakeAds.FirstOrDefault(ad => ad.Status == AdStatus.Open); if (openAd == null) { Assert.Fail("No open ads - cannot perform test"); } var adId = openAd.Id; var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(r => r.Ads).Returns(this.mockContainer.AdRepositoryMock.Object); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(i => i.GetUserId()).Returns(openAd.OwnerId); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); SetupController(adsController); var response = adsController.CloseAd(adId).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK,response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Once); var closedAd = mockContext.Object.Ads.Find(adId); Assert.AreNotEqual(null, closedAd.ClosedOn); Assert.AreEqual(AdStatus.Closed, closedAd.Status); }
public void Closing_Ad_As_NonOwner_Should_Return_400BadRequest() { 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 fakeUsers = this.mocks.UserRepositoryMock.Object.All(); ApplicationUser foreignUser = fakeUsers .FirstOrDefault(u => u.Id != openAd.OwnerId); if (foreignUser == null) { Assert.Fail("Cannot perform test - no user who is non owner of the ad."); } 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(foreignUser.Id); var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object); this.SetupController(adsController); var response = adsController.CloseAd(openAd.Id) .ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Never); Assert.IsNull(openAd.ClosedOn); Assert.AreEqual(AdStatus.Open, openAd.Status); }
public void ClosingAd_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.OwnerId); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); adsController.Request = new HttpRequestMessage(); adsController.Configuration = new HttpConfiguration(); var response = adsController.CloseAd(adId).ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); mockContext.Verify(c => c.SaveChanges(), Times.Once); Assert.AreNotEqual(null, openAd.ClosedOn); Assert.AreEqual(AdStatus.Closed, openAd.Status); }