public void GetAllAds_Should_Return_Total_Ads_Sorted_By_TypeIndex() { // Arrange var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var mockContext = new Mock<IOnlineShopData>(); var mockUserIdProvider = new Mock<IUserIdProvider>(); mockContext.Setup(c => c.Ads.All()) .Returns(fakeAds); var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object); this.SetupController(adsController); // Act var response = adsController.GetAds() .ExecuteAsync(CancellationToken.None).Result; // Assert Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var adsResponse = response.Content .ReadAsAsync<IEnumerable<AdViewModel>>() .Result.Select(a => a.Id) .ToList(); var orderedFakeAds = fakeAds .OrderByDescending(a => a.Type.Index) .ThenBy(a => a.PostedOn) .Select(a => a.Id) .ToList(); CollectionAssert.AreEqual(orderedFakeAds, adsResponse); }
public void TestGetAdsShouldReturnAllAdsSortedByType() { var mockedContext = new Mock<IOnlineShopData>(); mockedContext.Setup(c => c.Ads).Returns(this.mocks.AdRepositoryMock.Object); var adsController = new AdsController(mockedContext.Object); adsController.Request = new HttpRequestMessage(); adsController.Configuration = new HttpConfiguration(); var response = adsController.GetAds().ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var responseAds = response.Content .ReadAsAsync<IEnumerable<AdViewModel>>() .Result .Select(a => a.Id) .ToList(); var fakeAds = this.mocks.AdRepositoryMock.Object.All() .Select(AdViewModel.Create) .OrderBy(a => a.Type) .ThenBy(a => a.PostedOn) .Select(a => a.Id) .ToList(); CollectionAssert.AreEqual(fakeAds, responseAds); }
public void GetAllAds_Should_Return_All_Ads_Sorted_By_TypeIndex() { var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var fakeUser = this.mocks.UserRepositoryMock.Object.All().FirstOrDefault(); if (fakeUser == null) { Assert.Fail("Cannot perform test - no users available."); } var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(c => c.Ads.All()).Returns(fakeAds); var fakeUsers = this.mocks.UserRepositoryMock.Object.All(); mockContext.Setup(c => c.Users.All()).Returns(fakeUsers); var mockIdProvider = new Mock<IUserIdProvider>(); mockIdProvider.Setup(ip => ip.GetUserId()).Returns(fakeUser.Id); var adsController = new AdsController(mockContext.Object, mockIdProvider.Object); adsController.Request = new HttpRequestMessage(); adsController.Configuration = new HttpConfiguration(); var response = adsController.GetAds().ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var adsResponse = response.Content .ReadAsAsync<IEnumerable<AdViewModel>>() .Result.Select(a => a.Id) .ToList(); var orderedFakeAds = fakeAds .OrderByDescending(a => a.Type.Index) .ThenByDescending(a => a.PostedOn) .Select(a => a.Id) .ToList(); CollectionAssert.AreEqual(orderedFakeAds, adsResponse); }
public void GetAllAds_Should_Return_Total_Ads_Sorted_By_TypeIndex() { //Arrange var fakeAds = this.mocks.AdRepositoryMock.Object.All(); var mockContext = new Mock<IOnlineShopData>(); var mockUserIdProvider = new Mock<IUserIdProvider>(); mockContext.Setup(c => c.Ads.All()) .Returns(fakeAds); var adsController = new AdsController(mockContext.Object, mockUserIdProvider.Object); this.SetupController(adsController); //Act- invoke the GetAllAds() method from the controller. var response = adsController.GetAds() .ExecuteAsync(CancellationToken.None).Result; //Assert that the response status code is 200 OK Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); //Deserialize the response data with ReadAsAsync<T>(). Select only the IDs. var adsResponse = response.Content.ReadAsAsync<IEnumerable<AdViewModel>>() .Result.Select(a => a.Id) .ToList(); //Order the fake ads collection just like the controller does the ordering. //Select only the IDs. var orderedFakeAds = fakeAds .OrderBy(a => a.Type.Index) .ThenBy(a => a.PostedOn) .Select(a => a.Id) .ToList(); //Assert that the two collections have the same elements CollectionAssert.AreEqual(orderedFakeAds, adsResponse); }
public void TestGetAllAds_ShouldReturnAllAdsSortedByIndex() { var fakeAds = mockContainer.AdRepositoryMock.Object.All(); var mockContext = new Mock<IOnlineShopData>(); mockContext.Setup(r => r.Ads.All()).Returns(fakeAds.AsQueryable()); var adsController = new AdsController(mockContext.Object); this.SetupController(adsController); var result = adsController.GetAds().ExecuteAsync(CancellationToken.None).Result; Assert.AreEqual(HttpStatusCode.OK, result.StatusCode); var adResponse = result.Content.ReadAsAsync<IEnumerable<AdsViewModel>>() .Result .OrderByDescending(a => a.Type) .ThenByDescending(a => a.PostedOn) .Select(a => new {a.Id}) .ToList(); var fa = fakeAds .OrderByDescending(a => a.Type.Index) .ThenByDescending(a => a.PostedOn) .Select(a => new { a.Id }) .ToList(); Assert.AreEqual(2, adResponse.Count); Assert.AreEqual(2, fa.Count); CollectionAssert.AreEqual(fa, adResponse); }