Пример #1
0
        public async Task ServiceTest_CheckAddOne_ExpectOk()
        {
            var date    = DateTime.Now;
            var newShow = new ShowModel
            {
                id      = 1,
                name    = "test",
                updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
            };
            var factory = SetupUpsertShowRepository(null);

            _showRepository.Setup(s => s.Add(It.IsAny <IEnumerable <Show> >())).Callback <IEnumerable <Show> >(u =>
            {
                Assert.AreEqual(1, u.Count());
                Assert.AreEqual(newShow.name, u.First().Name);
                Assert.AreEqual(newShow.id, u.First().ExternalId);
                Assert.AreEqual(newShow.updated, u.First().Updated);
            }).Returns(Task.FromResult(true));

            var service = new ShowsService(factory, SetupTvMazeServer(new Dictionary <string, int> {
                { "1", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() }
            }, new[] { newShow }));

            await service.Sync();

            _showRepository.Verify(s => s.GetAll(), Times.Once);
            _showRepository.Verify(s => s.Add(It.IsAny <IEnumerable <Show> >()), Times.Once);
            _showRepository.Verify(s => s.Update(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Remove(It.IsAny <IEnumerable <Show> >()), Times.Never);
        }
Пример #2
0
        public void ShowsService_Create_calls_Create_method()
        {
            var showDto = new ShowDTO
            {
                Id          = 100,
                Description = "sdf",
                Name        = "dfg",
                Episodes    = 5,
                Seasons     = 2
            };

            var  mock           = new Mock <IUnitOfWork>();
            bool isCreateCalled = false;

            mock.Setup(a => a.Shows.Create(It.Is <Show>(s =>
                                                        (s.Id == showDto.Id) &&
                                                        (s.Name == showDto.Name) &&
                                                        (s.Seasons == showDto.Seasons) &&
                                                        (s.Episodes == showDto.Episodes) &&
                                                        (s.Description == showDto.Description)))).Callback(() => isCreateCalled = true);

            service = new ShowsService(mock.Object);

            service.Create(showDto);

            Assert.IsTrue(isCreateCalled);
        }
Пример #3
0
        public async Task ServiceTest_CheckCastMultiple_ExpectOk()
        {
            var data = new[] { new Show {
                                   ExternalId = 444, Name = "Test", Cast = new[] { new Cast {
                                                                                       Name = "test", ExternalId = 1, Birthday = new DateTime()
                                                                                   }, new Cast {
                                                                                       Name = "test2", ExternalId = 2, Birthday = new DateTime()
                                                                                   } }
                               } };

            var service = new ShowsService(SetupGetShowRepository(data), null);
            var result  = await service.Get();

            Assert.AreEqual(2, result.First(d => d.Cast != null).Cast.Count());
            Assert.AreEqual(1, result.Count(d => d.Cast != null));
            Assert.AreEqual(0, result.Count(d => d.Cast == null));

            var firstCast = result.First().Cast.First(c => c.Id == data.First().Cast.First().ExternalId);

            Assert.AreEqual(data.First().Cast.First().Name, firstCast.Name);
            Assert.AreEqual(data.First().Cast.First().Birthday, firstCast.Birthday);

            var lastCast = result.First().Cast.First(c => c.Id == data.First().Cast.Last().ExternalId);

            Assert.AreEqual(data.First().Cast.Last().Name, lastCast.Name);
            Assert.AreEqual(data.First().Cast.Last().Birthday, lastCast.Birthday);
        }
Пример #4
0
        private ShowsService GetShowsServiceForListExceptionTests()
        {
            var mongoCollectionMock = new Mock <IMongoCollection <Show> >();

            var mongoDatabaseMock = new Mock <IMongoDatabase>();

            mongoDatabaseMock.Setup(x => x.GetCollection <Show>(It.IsAny <string>(), null))
            .Returns(mongoCollectionMock.Object);

            var mongoClientMock = new Mock <IMongoClient>();

            mongoClientMock.Setup(x => x.GetDatabase(It.IsAny <string>(), null)).Returns(mongoDatabaseMock.Object);

            var clientFactoryMock = new Mock <IMongoDbClientFactory>();

            clientFactoryMock.Setup(x => x.GetMongoDbClient()).Returns(mongoClientMock.Object);

            var mongoDbOptionsMock = new Mock <IOptions <MongoDbOptions> >();

            mongoDbOptionsMock.Setup(x => x.Value).Returns(new MongoDbOptions());

            var loggerMock = new Mock <ILogger <ShowsService> >();

            var showsService = new ShowsService(clientFactoryMock.Object, mongoDbOptionsMock.Object, loggerMock.Object);

            return(showsService);
        }
Пример #5
0
        public async Task ServiceTest_CheckUpsertLastUpdatedExistDeleteOthers_ExpectOk()
        {
            var existShows = new[]
            {
                new Show {
                    ExternalId = 1, Name = "OldName", Updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
                new Show {
                    ExternalId = 2, Name = "OldName", Updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
                new Show {
                    ExternalId = 4, Name = "OldName", Updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                }
            };

            var service = new ShowsService(SetupUpsertShowRepository(existShows), SetupTvMazeServer(new Dictionary <string, int> {
                { "1", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() }
            }));

            await service.Sync();

            _showRepository.Setup(s => s.Remove(It.IsAny <IEnumerable <Show> >())).Callback <IEnumerable <Show> >(elements =>
            {
                Assert.AreEqual(existShows.Length, elements.Count());
                foreach (var s in existShows.Where(s => s.ExternalId != 1))
                {
                    Assert.AreEqual(1, elements.Count(u => u.Id == s.Id));
                }
            }).Returns(Task.FromResult(true));

            _showRepository.Verify(s => s.Add(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Update(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Remove(It.IsAny <IEnumerable <Show> >()), Times.Once);
        }
Пример #6
0
        public async Task ShouldAddShows()
        {
            var clientFactoryMock  = new Mock <IMongoDbClientFactory>();
            var mongoDbOptionsMock = new Mock <IOptions <MongoDbOptions> >();

            var mongoCollectionMock = new Mock <IMongoCollection <Show> >();

            var mongoDatabaseMock = new Mock <IMongoDatabase>();

            mongoDatabaseMock.Setup(x => x.GetCollection <Show>(It.IsAny <string>(), null))
            .Returns(mongoCollectionMock.Object);

            var mongoClientMock = new Mock <IMongoClient>();

            mongoClientMock.Setup(x => x.GetDatabase(It.IsAny <string>(), null)).Returns(mongoDatabaseMock.Object);

            clientFactoryMock.Setup(x => x.GetMongoDbClient()).Returns(mongoClientMock.Object);
            mongoDbOptionsMock.Setup(x => x.Value).Returns(new MongoDbOptions());

            var loggerMock = new Mock <ILogger <ShowsService> >();

            var showsService = new ShowsService(clientFactoryMock.Object, mongoDbOptionsMock.Object, loggerMock.Object);

            await showsService.AddShows(new List <Show>());

            mongoCollectionMock.Verify(x => x.InsertManyAsync(new List <Show>(), null, default(CancellationToken)),
                                       Times.Once);
        }
Пример #7
0
    public DiscoverViewModel(ShowsService shows, SubscriptionsService subs, CategoriesViewModel categories)
    {
        showsService         = shows;
        subscriptionsService = subs;

        SearchCommand = new AsyncCommand(OnSearchCommandAsync);
        categoriesVM  = categories;
    }
Пример #8
0
        public async Task ServiceTest_CheckGetEmpty_ExpectOk()
        {
            var data = Enumerable.Empty <Show>();

            var service = new ShowsService(SetupGetShowRepository(data), null);
            var result  = await service.Get();

            Assert.AreEqual(0, result.Count());
        }
Пример #9
0
        public async Task ServiceTest_CheckUpdateMany_ExpectOk()
        {
            var newShows = new[] {
                new ShowModel {
                    id = 1, name = "test", updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
                new ShowModel {
                    id = 2, name = "test2", updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
                new ShowModel {
                    id = 3, name = "test3", updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
                new ShowModel {
                    id = 4, name = "test4", updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                },
            };
            var newShowsUpdates = new Dictionary <string, int>
            {
                { "1", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() },
                { "2", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() },
                { "3", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() },
                { "4", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() }
            };

            var factory = SetupUpsertShowRepository(
                new[] { new Show {
                            ExternalId = 1, Name = "OldName", Updated = (int)DateTimeOffset.Now.AddDays(-1).ToUnixTimeSeconds()
                        },
                        new Show {
                            ExternalId = 2, Name = "OldName", Updated = (int)DateTimeOffset.Now.AddDays(-1).ToUnixTimeSeconds()
                        },
                        new Show {
                            ExternalId = 3, Name = "OldName", Updated = (int)DateTimeOffset.Now.AddDays(-1).ToUnixTimeSeconds()
                        },
                        new Show {
                            ExternalId = 4, Name = "OldName", Updated = (int)DateTimeOffset.Now.AddDays(-1).ToUnixTimeSeconds()
                        } });

            _showRepository.Setup(s => s.Update(It.IsAny <IEnumerable <Show> >())).Callback <IEnumerable <Show> >(elements =>
            {
                Assert.AreEqual(newShows.Length, elements.Count());
                foreach (var s in newShows)
                {
                    Assert.AreEqual(s.name, elements.First(u => u.ExternalId == s.id).Name);
                    Assert.AreEqual(s.updated, elements.First(u => u.ExternalId == s.id).Updated);
                }
            }).Returns(Task.FromResult(true));
            var service = new ShowsService(factory, SetupTvMazeServer(newShowsUpdates, newShows));

            await service.Sync();

            _showRepository.Verify(s => s.GetAll(), Times.Once);
            _showRepository.Verify(s => s.Add(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Update(It.IsAny <IEnumerable <Show> >()), Times.Once);
            _showRepository.Verify(s => s.Remove(It.IsAny <IEnumerable <Show> >()), Times.Never);
        }
Пример #10
0
        public void ShowsService_GetShows_result_not_null()
        {
            var mock = new Mock <IUnitOfWork>();

            mock.Setup(a => a.Shows.GetAll()).Returns(new List <Show>());
            service = new ShowsService(mock.Object);

            var result = service.GetShows();

            Assert.IsNotNull(result);
        }
Пример #11
0
        public async Task ServiceTest_CheckUpsertNull_ExpectOk()
        {
            var service = new ShowsService(SetupUpsertShowRepository(null), SetupTvMazeServer(null));

            await service.Sync();

            _showRepository.Verify(s => s.GetAll(), Times.Never);
            _showRepository.Verify(s => s.Add(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Update(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Remove(It.IsAny <IEnumerable <Show> >()), Times.Never);
        }
Пример #12
0
        public async Task ServiceTest_CheckCastIsEmpty_ExpectOk()
        {
            var data = new[] { new Show {
                                   ExternalId = 444, Name = "Test"
                               } };

            var service = new ShowsService(SetupGetShowRepository(data), null);
            var result  = await service.Get();

            Assert.AreEqual(null, result.First().Cast);
        }
Пример #13
0
        public async Task ServiceTest_CheckGet_ExpectOk()
        {
            var data = new [] { new Show {
                                    ExternalId = 444, Name = "Test"
                                } };

            var service = new ShowsService(SetupGetShowRepository(data), null);
            var result  = await service.Get();

            Assert.AreEqual(data[0].ExternalId, result.First().Id);
            Assert.AreEqual(data[0].Name, result.First().Name);
        }
Пример #14
0
        public void ShowsService_Dispose_calls_Dispose_method()
        {
            var  mock            = new Mock <IUnitOfWork>();
            bool isDisposeCalled = false;

            mock.Setup(a => a.Dispose()).Callback(() => isDisposeCalled = true);

            service = new ShowsService(mock.Object);

            service.Dispose();

            Assert.IsTrue(isDisposeCalled);
        }
Пример #15
0
        public ShowsServiceTests()
        {
            _mockedRepository    = new Mock <IShowsRepository>();
            _mockedClient        = new Mock <IRestClient>();
            _mockedMessageClient = new Mock <IMessageClient>();

            _mockedClient.Setup(x => x.RetrieveAsync(_fakeApiUri)).ReturnsAsync(_fakeData).Verifiable();
            _mockedRepository.Setup(x => x.AddRangeAsync(It.IsAny <List <Shows> >())).Verifiable();
            _mockedRepository.Setup(x => x.GetNewShows(_shows)).Returns(_shows).Verifiable();
            _mockedMessageClient.Setup(x => x.SendAsync(It.IsAny <string>(), It.IsAny <int>())).Verifiable();

            _showService = new ShowsService(_mockedRepository.Object, _mockedClient.Object, _mockedMessageClient.Object);
        }
Пример #16
0
        public async Task ServiceTest_CheckUpsertLastUpdatedExist_ExpectOk()
        {
            var service = new ShowsService(SetupUpsertShowRepository(new [] { new Show {
                                                                                  ExternalId = 1, Updated = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()
                                                                              } }), SetupTvMazeServer(new Dictionary <string, int> {
                { "1", (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds() }
            }));

            await service.Sync();

            _showRepository.Verify(s => s.Add(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Update(It.IsAny <IEnumerable <Show> >()), Times.Never);
            _showRepository.Verify(s => s.Remove(It.IsAny <IEnumerable <Show> >()), Times.Never);
        }
Пример #17
0
        public async Task ServiceTest_CheckCastOne_ExpectOk()
        {
            var data = new[] { new Show {
                                   ExternalId = 444, Name = "Test", Cast = new [] { new Cast {
                                                                                        Name = "test", ExternalId = 1, Birthday = new DateTime()
                                                                                    } }
                               } };

            var service = new ShowsService(SetupGetShowRepository(data), null);
            var result  = await service.Get();

            Assert.AreEqual(data[0].Cast.First().Name, result.First().Cast.First().Name);
            Assert.AreEqual(data[0].Cast.First().ExternalId, result.First().Cast.First().Id);
            Assert.AreEqual(data[0].Cast.First().Birthday, result.First().Cast.First().Birthday);
        }
Пример #18
0
 public ShowsController(ShowsService shows)
 {
     this.Shows = shows;
 }
Пример #19
0
 public CategoryViewModel(ShowsService shows, SubscriptionsService subs)
 {
     showsService         = shows;
     subscriptionsService = subs;
 }
Пример #20
0
 public CategoriesViewModel(ShowsService shows)
 {
     showsService = shows;
 }
Пример #21
0
 public ShowsController(IRepository<ApplicationUser, string> users, IAppSettings appSettings, ShowsService showsService)
     : base(users, appSettings)
 {
     this.ShowsService = showsService;
 }