Ejemplo n.º 1
0
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_default_clock()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var targetId  = Any.CamelCaseName();
            var clock     = new CommandScheduler.Clock
            {
                Name   = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            var dueTime = DateTimeOffset.Parse("2016-03-20 09:00:00 AM");

            // act
            await Schedule(new CreateCommandTarget(targetId), dueTime, clock : clock);

            await AdvanceClock(clockName : clockName, by : 30.Days());

            //assert
            var target = await Get <NonEventSourcedCommandTarget>(targetId);

            target.Should().NotBeNull();
        }
Ejemplo n.º 2
0
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_default_clock()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var create    = new CreateOrder(Any.Guid(), Any.FullName());

            var clock = new CommandScheduler.Clock
            {
                Name   = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            // act
            await Schedule(
                create,
                dueTime : DateTimeOffset.Parse("2016-03-20 09:00:00 AM"),
                clock : clock);

            await AdvanceClock(clockName : clockName, by : 30.Days());

            //assert
            var target = await Get <Order>(create.AggregateId);

            target.Should().NotBeNull();
        }
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_GetClockName()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var targetId  = Any.CamelCaseName();
            var command   = new CreateCommandTarget(targetId);
            var clock     = new CommandScheduler.Clock
            {
                Name   = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = Configuration.Current.CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            var scheduledCommand = new ScheduledCommand <CommandTarget>(
                targetId: targetId,
                command: command,
                dueTime: DateTimeOffset.Parse("2016-03-20 09:00:00 AM"))
            {
                Clock = clock
            };

            // act
            await scheduler.Schedule(scheduledCommand);

            await Configuration.Current.SchedulerClockTrigger()
            .AdvanceClock(clockName, by: 30.Days());

            //assert
            var target = await store.Get(targetId);

            target.Should().NotBeNull();
        }
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_GetClockName()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var targetId = Any.CamelCaseName();
            var command = new CreateCommandTarget(targetId);
            var clock = new CommandScheduler.Clock
            {
                Name = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = Configuration.Current.CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            var scheduledCommand = new ScheduledCommand<CommandTarget>(
                targetId: targetId,
                command: command,
                dueTime: DateTimeOffset.Parse("2016-03-20 09:00:00 AM"))
            {
                Clock = clock
            };

            // act
            await scheduler.Schedule(scheduledCommand);

            await Configuration.Current.SchedulerClockTrigger()
                .AdvanceClock(clockName, by: 30.Days());

            //assert 
            var target = await store.Get(targetId);

            target.Should().NotBeNull();
        }
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_GetClockName()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var create = new CreateOrder(Any.FullName())
            {
                AggregateId = Any.Guid()
            };

            var clock = new CommandScheduler.Clock
            {
                Name = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = new CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            var scheduledCommand = new ScheduledCommand<Order>(
                aggregateId: create.AggregateId,
                command: create,
                dueTime: DateTimeOffset.Parse("2016-03-20 09:00:00 AM"))
            {
                Clock = clock
            };

            // act
            var configuration = Configuration.Current;
            await configuration.CommandScheduler<Order>().Schedule(scheduledCommand);

            await configuration.SchedulerClockTrigger()
                               .AdvanceClock(clockName,
                                             by: 30.Days());

            //assert 
            var target = await configuration.Repository<Order>().GetLatest(create.AggregateId);

            target.Should().NotBeNull();
        }
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_default_clock()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var create = new CreateOrder(Any.FullName())
            {
                AggregateId = Any.Guid()
            };

            var clock = new CommandScheduler.Clock
            {
                Name = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            // act
            await Schedule(
                create,
                dueTime: DateTimeOffset.Parse("2016-03-20 09:00:00 AM"),
                clock: clock);

            await AdvanceClock(clockName: clockName, by: 30.Days());

            //assert 
            var target = await Get<Order>(create.AggregateId);

            target.Should().NotBeNull();
        }
        public override async Task When_a_clock_is_set_on_a_command_then_it_takes_precedence_over_default_clock()
        {
            // arrange
            var clockName = Any.CamelCaseName();
            var targetId = Any.CamelCaseName();
            var clock = new CommandScheduler.Clock
            {
                Name = clockName,
                UtcNow = DateTimeOffset.Parse("2016-03-01 02:00:00 AM")
            };

            using (var commandScheduler = CommandSchedulerDbContext())
            {
                commandScheduler.Clocks.Add(clock);
                commandScheduler.SaveChanges();
            }

            var dueTime = DateTimeOffset.Parse("2016-03-20 09:00:00 AM");

            // act
            await Schedule(new CreateCommandTarget(targetId), dueTime, clock: clock);

            await AdvanceClock(clockName: clockName, by: 30.Days());

            //assert 
            var target = await Get<NonEventSourcedCommandTarget>(targetId);

            target.Should().NotBeNull();
        }