Beispiel #1
0
        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);
        }
Beispiel #2
0
        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));
        }