public void GetRandomVinyls_TotalVinylsFail_ShouldReturnErrorsFromDataServiceAndNoVinyls() { //Arrange var totalVinylsResult = fixture.Create <ErrorResponse <int> >(); vinylDataServiceMock.GetTotalVinyls().Returns(totalVinylsResult); //Act var serviceResult = vinylService.GetRandomVinyls(4); //Assert Assert.IsNull(serviceResult.Response); Assert.IsFalse(serviceResult.IsSucces); CollectionAssert.AreEquivalent(totalVinylsResult.ErrorMessages, serviceResult.ErrorMessages); }
public ServiceResponse <List <Models.Vinyl> > GetRandomVinyls(int numberOfVinyls) { var totalVinylsResponse = dataService.GetTotalVinyls(); if (!totalVinylsResponse.IsSucces) { return(new ErrorResponse <List <Models.Vinyl> >(totalVinylsResponse.ErrorMessages)); } Random rand = new Random(); List <int> selectedRandomIndexes = new List <int>(); int number; for (int i = 0; i < numberOfVinyls; i++) { do { number = rand.Next(1, totalVinylsResponse.Response); } while (selectedRandomIndexes.Contains(number)); selectedRandomIndexes.Add(number); } var randomVinyls = dataService.GetVinylsByIndex(selectedRandomIndexes).Result; if (!randomVinyls.IsSucces) { return(new ErrorResponse <List <Models.Vinyl> >(randomVinyls.ErrorMessages)); } return(new SuccesResponse <List <Models.Vinyl> >(randomVinyls.Response)); }