Esempio n. 1
0
        public async Task Should_LogErrorToDb_When_UpdateTrainingCatalogThrowAggregateException()
        {
            // Arrange
            var trainingProvider    = new TrainingProvider();
            var description         = "test update";
            var mediaPathsContainer = new UpdateService.ServerMediaPathsContainer();

            var updateDbContext = Mock.Of <UpdateDbContext>(x => x.UpdateEvents.Add(It.IsAny <UpdateEvent>()) == new UpdateEvent());

            Mock.Get(updateDbContext).Setup(x => x.SetStateToDetached(It.IsAny <UpdateEvent>()));

            var mockContextFromFactory = new Mock <UpdateDbContext>();

            mockContextFromFactory.Setup(x => x.SetStateToModified(It.IsAny <UpdateEvent>()));

            var dbContextFactory = Mock.Of <IDbContextFactory <UpdateDbContext> >(x => x.CreateDbContext() == mockContextFromFactory.Object);


            var mockTrainingCatalog = new Mock <ITrainingCatalog>();

            mockTrainingCatalog.Setup(x => x.UpdateAsync(It.IsAny <UpdateEvent>(), It.IsAny <UpdateDbContext>(),
                                                         It.IsAny <bool>(), It.IsAny <bool>())).Throws <AggregateException>();

            var mockActivator = new Mock <IActivatorProxy>();

            mockActivator.Setup(x => x.CreateInstance <ITrainingCatalog>(It.IsAny <string>()))
            .Returns(mockTrainingCatalog.Object);

            var sut = new UpdateService(string.Empty, ArchiveDirectoryPath, dbContextFactory, DateTimeProxy.Instance, mockActivator.Object);

            // Act
            await sut.UpdateTrainingCatalogAsync(updateDbContext, trainingProvider, description, mediaPathsContainer);

            // Assert
            Mock.Get(updateDbContext).Verify(x => x.SaveChangesAsync(), Times.Once);

            mockTrainingCatalog.Verify(x => x.UpdateAsync(It.IsAny <UpdateEvent>(), It.IsAny <UpdateDbContext>(),
                                                          It.IsAny <bool>(), It.IsAny <bool>()), Times.Once);
            mockTrainingCatalog.Verify(x => x.Dispose(), Times.Once);

            Mock.Get(dbContextFactory).Verify(x => x.CreateDbContext(), Times.Once);

            mockContextFromFactory.Verify(x => x.SetStateToModified(It.IsAny <UpdateEvent>()), Times.Once());
            mockContextFromFactory.Verify(x => x.SaveChanges(), Times.Once);
        }
Esempio n. 2
0
        public async Task Should_UpdateTrainingCatalog()
        {
            // Arrange
            var trainingProvider    = new TrainingProvider();
            var description         = "test update";
            var mediaPathsContainer = new UpdateService.ServerMediaPathsContainer();

            var updateDbContext = Mock.Of <UpdateDbContext>(x => x.UpdateEvents.Add(It.IsAny <UpdateEvent>()) == new UpdateEvent() &&
                                                            x.AuthorsResolves.Local == new ObservableCollection <AuthorResolve>());
            var mockContext = Mock.Get(updateDbContext);

            var mockTrainingCatalog = new Mock <ITrainingCatalog>();
            var mockActivator       = new Mock <IActivatorProxy>();

            mockActivator.Setup(x => x.CreateInstance <ITrainingCatalog>(It.IsAny <string>()))
            .Returns(mockTrainingCatalog.Object);

            var sut = new UpdateService(string.Empty, ArchiveDirectoryPath, new DbContextFactory <UpdateDbContext>(), DateTimeProxy.Instance, mockActivator.Object);

            // Act
            await sut.UpdateTrainingCatalogAsync(mockContext.Object, trainingProvider, description, mediaPathsContainer);

            // Assert
            mockContext.Verify(x => x.UpdateEvents.Add(It.IsAny <UpdateEvent>()), Times.Once);
            mockContext.Verify(x => x.SaveChangesAsync(), Times.Exactly(2));

            mockActivator.Verify(x => x.CreateInstance <ITrainingCatalog>(It.IsAny <string>()), Times.Once);

            mockTrainingCatalog.Verify(x => x.Initialize(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <string>(),
                                                         It.IsAny <string>(), It.IsAny <LocationType>(), It.IsAny <IMediaPath>(), It.IsAny <string>()), Times.Once());

            mockTrainingCatalog.Verify(x => x.UpdateAsync(It.IsAny <UpdateEvent>(), It.IsAny <UpdateDbContext>(),
                                                          It.IsAny <bool>(), It.IsAny <bool>()), Times.Once);

            mockTrainingCatalog.Verify(x => x.Dispose(), Times.Once);
        }
      public async Task Should_LogErrorToDb_When_UpdateTrainingCatalogThrowAggregateException()
      {
         // Arrange
         var trainingProvider = new TrainingProvider();
         var description = "test update";
         var mediaPathsContainer = new UpdateService.ServerMediaPathsContainer();

         var updateDbContext = Mock.Of<UpdateDbContext>(x => x.UpdateEvents.Add(It.IsAny<UpdateEvent>()) == new UpdateEvent());
         Mock.Get(updateDbContext).Setup(x => x.SetStateToDetached(It.IsAny<UpdateEvent>()));

         var mockContextFromFactory = new Mock<UpdateDbContext>();
         mockContextFromFactory.Setup(x => x.SetStateToModified(It.IsAny<UpdateEvent>()));

         var dbContextFactory = Mock.Of<IDbContextFactory<UpdateDbContext>>(x => x.CreateDbContext() == mockContextFromFactory.Object);
         

         var mockTrainingCatalog = new Mock<ITrainingCatalog>();
         mockTrainingCatalog.Setup(x => x.UpdateAsync(It.IsAny<UpdateEvent>(), It.IsAny<UpdateDbContext>(),
            It.IsAny<bool>(), It.IsAny<bool>())).Throws<AggregateException>();

         var mockActivator = new Mock<IActivatorProxy>();
         mockActivator.Setup(x => x.CreateInstance<ITrainingCatalog>(It.IsAny<string>()))
            .Returns(mockTrainingCatalog.Object);

         var sut = new UpdateService(string.Empty, ArchiveDirectoryPath, dbContextFactory, DateTimeProxy.Instance, mockActivator.Object);

         // Act
         await sut.UpdateTrainingCatalogAsync(updateDbContext, trainingProvider, description, mediaPathsContainer);

         // Assert
         Mock.Get(updateDbContext).Verify(x => x.SaveChangesAsync(), Times.Once);
         
         mockTrainingCatalog.Verify(x => x.UpdateAsync(It.IsAny<UpdateEvent>(), It.IsAny<UpdateDbContext>(),
            It.IsAny<bool>(), It.IsAny<bool>()), Times.Once);
         mockTrainingCatalog.Verify(x => x.Dispose(), Times.Once);

         Mock.Get(dbContextFactory).Verify(x => x.CreateDbContext(), Times.Once);

         mockContextFromFactory.Verify(x => x.SetStateToModified(It.IsAny<UpdateEvent>()), Times.Once());
         mockContextFromFactory.Verify(x => x.SaveChanges(), Times.Once);
      }
      public async Task Should_UpdateTrainingCatalog()
      {
         // Arrange
         var trainingProvider = new TrainingProvider();
         var description = "test update";
         var mediaPathsContainer = new UpdateService.ServerMediaPathsContainer();

         var updateDbContext = Mock.Of<UpdateDbContext>(x => x.UpdateEvents.Add(It.IsAny<UpdateEvent>()) == new UpdateEvent() &&
            x.AuthorsResolves.Local == new ObservableCollection<AuthorResolve>());
         var mockContext = Mock.Get(updateDbContext);

         var mockTrainingCatalog = new Mock<ITrainingCatalog>();
         var mockActivator = new Mock<IActivatorProxy>();

         mockActivator.Setup(x => x.CreateInstance<ITrainingCatalog>(It.IsAny<string>()))
            .Returns(mockTrainingCatalog.Object);

         var sut = new UpdateService(string.Empty, ArchiveDirectoryPath, new DbContextFactory<UpdateDbContext>(), DateTimeProxy.Instance, mockActivator.Object);

         // Act
         await sut.UpdateTrainingCatalogAsync(mockContext.Object, trainingProvider, description, mediaPathsContainer);

         // Assert
         mockContext.Verify(x => x.UpdateEvents.Add(It.IsAny<UpdateEvent>()), Times.Once);
         mockContext.Verify(x => x.SaveChangesAsync(), Times.Exactly(2));

         mockActivator.Verify(x => x.CreateInstance<ITrainingCatalog>(It.IsAny<string>()), Times.Once);

         mockTrainingCatalog.Verify(x => x.Initialize(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<string>(),
            It.IsAny<string>(), It.IsAny<LocationType>(),It.IsAny<IMediaPath>(), It.IsAny<string>()), Times.Once());

         mockTrainingCatalog.Verify(x => x.UpdateAsync(It.IsAny<UpdateEvent>(), It.IsAny<UpdateDbContext>(),
            It.IsAny<bool>(), It.IsAny<bool>()), Times.Once);

         mockTrainingCatalog.Verify(x => x.Dispose(), Times.Once);
      }