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); }
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); }
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); }
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); }
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); }
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); }
public DiscoverViewModel(ShowsService shows, SubscriptionsService subs, CategoriesViewModel categories) { showsService = shows; subscriptionsService = subs; SearchCommand = new AsyncCommand(OnSearchCommandAsync); categoriesVM = categories; }
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()); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public ShowsController(ShowsService shows) { this.Shows = shows; }
public CategoryViewModel(ShowsService shows, SubscriptionsService subs) { showsService = shows; subscriptionsService = subs; }
public CategoriesViewModel(ShowsService shows) { showsService = shows; }
public ShowsController(IRepository<ApplicationUser, string> users, IAppSettings appSettings, ShowsService showsService) : base(users, appSettings) { this.ShowsService = showsService; }