public async void ShouldQueueNextExecution()
        {
            var fixture     = new Fixture();
            var queueClient = new Mock <IQueueClient>();
            var mediator    = new Mock <IMediator>();
            var userService = new Mock <ICurrentUserService>();

            var createCommand = fixture.Create <CreateManagementJobCommand>();

            using (var dbContext = DbContextHelpers.CreateDatabaseContext())
            {
                var createCommandHandler = new CreateManagementJobCommandHandler(dbContext);
                var createdId            = await createCommandHandler.Handle(createCommand, CancellationToken.None);

                // set the job to "IsActive"
                var startCommand = new StartManagementJobCommand
                {
                    ManagementJobId = createdId
                };
                var startCommandHandler = new StartManagementJobCommandHandler(dbContext);
                await startCommandHandler.Handle(startCommand, CancellationToken.None);

                var executeCommand = new ExecuteManagementJobCommand
                {
                    ManagementJobId = createdId
                };

                var executeCommandHandler = new ExecuteManagementJobCommandHandler(dbContext, queueClient.Object, mediator.Object, userService.Object);
                await executeCommandHandler.Handle(executeCommand, CancellationToken.None);

                // should not call queue client because job is set to inactive
                queueClient.Verify(x => x.EnqueueManagementJob(executeCommand), Times.Once);
            }
        }
Esempio n. 2
0
        public async void CreateManagementJobCommand_InsertsIntoDatabase()
        {
            var fixture = new Fixture();

            using (DatabaseContext dbContext = DbContextHelpers.CreateDatabaseContext())
            {
                var command = fixture.Create <CreateManagementJobCommand>();
                var handler = new CreateManagementJobCommandHandler(dbContext);

                var result = await handler.Handle(command, CancellationToken.None);

                result.Should().NotBeEmpty();

                var created = await dbContext.ManagementJobs.FindAsync(result);

                created.PlaylistId.Should().Be(command.PlaylistId);
            }
        }