public static Func <StrategyAssignedEvent> WhenExtractingEvent( this AssignIsAfterStrategyToFeatureCommand command, ISystemClock clock, IStrategySettingsSerializer serializer) { return(() => command.ExtractStrategyAssignedEvent( clock, serializer)); }
public static async Task ThenWePublish( this Func <Task> funk, Mock <IFeaturesAggregate> featuresAggregate, AssignIsAfterStrategyToFeatureCommand command) { await funk(); featuresAggregate.Verify(_ => _.Publish( It.Is <StrategyAssignedEvent>(e => e.Name.Equals( command.Name, StringComparison.InvariantCultureIgnoreCase))), Times.Once); }
public async Task GivenAValidCommand_WhenPublishingAFeature_ThenWePublishPathAndFeature() { var featuresAggregate = this.GivenIFeaturesAggregate(); var command = new AssignIsAfterStrategyToFeatureCommand { AssignedBy = "meeee", Name = "bob", Path = "let/me/show/you", Value = this._clock.UtcNow }; await this.GivenCommandHandler(featuresAggregate.Object) .WhenPublishingAFeature(command) .ThenWePublish(featuresAggregate, command); }
public async Task GivenACommand_WhenPublishingThrows_ThenWeThrow() { var featuresAggregate = this.GivenIFeaturesAggregate() .WithPublishingThrows <NotImplementedException>(); var command = new AssignIsAfterStrategyToFeatureCommand { AssignedBy = "😎", Name = "🌲/🦝", Value = this._clock.UtcNow }; await this.GivenCommandHandler(featuresAggregate.Object) .WhenPublishingAFeature(command) .ThenExceptionIsThrown <NotImplementedException>(); }
public async Task GivenAnInvalidCommand_WhenPublishingAFeature_ThenWeThrow() { var featuresAggregate = this .GivenIFeaturesAggregate() .WithPublishing(); var command = new AssignIsAfterStrategyToFeatureCommand { AssignedBy = "😎", Path = "🌲/🦝", Value = this._clock.UtcNow }; await this.GivenCommandHandler(featuresAggregate.Object) .WhenPublishingAFeature(command) .ThenExceptionIsThrown <ArgumentValidationException>(); }
public static void ThenWeGetAFeaturePublishedEvent( this Func <StrategyAssignedEvent> featFunc, AssignIsAfterStrategyToFeatureCommand command, ISystemClock clock) { var feat = featFunc(); feat.AssignedBy.Should().Be(command.AssignedBy); feat.AssignedOn.Should().Be(clock.UtcNow); feat.Name.Should().Be(command.Name); feat.Path.Should().Be(command.Path); feat.StrategyName.Should().Be(StrategyNames.IsAfter); feat.Settings.Should().Be(JsonSerializer.Serialize(new DateTimeOffsetStrategySettings { Value = clock.UtcNow })); }
public static Func <Task> WhenPublishingAFeature( this IHandleCommand <AssignIsAfterStrategyToFeatureCommand> handler, AssignIsAfterStrategyToFeatureCommand command) { return(() => handler.Handle(command)); }
public static Action WhenValidating(this AssignIsAfterStrategyToFeatureCommand command) { return(() => command.Validate()); }