예제 #1
0
        public void IsNewPositiveTest()
        {
            var spec  = new IsNewSpecification <CompetitionAggregate>();
            var isNew = spec.IsSatisfiedBy(new CompetitionAggregate(CompetitionId.New, SnapshotEveryFewVersionsStrategy.Default));

            isNew.Should().BeTrue();
        }
예제 #2
0
        public void IsNewNegativeTest()
        {
            var spec        = new IsNewSpecification <CompetitionAggregate>();
            var competition = new CompetitionAggregate(CompetitionId.New, SnapshotNeverStrategy.Default);

            competition.ApplyEvents(ToDomainEvents(competition.Id, new CompetitionRegisteredEvent("user", "name")));
            var isNew = spec.IsSatisfiedBy(competition);

            isNew.Should().BeFalse();
        }
예제 #3
0
        public bool IsValid(Order order)
        {
            var isNew      = new IsNewSpecification(order.SinkSettings.SmsSettings.IsNewPeriod);
            var isOwner    = new IsOnlyCreatedByOwnerSpecification(order.SinkSettings.SmsSettings.IsOnlyOwner);
            var priceLower = new PriceLowerSpecification(order.SinkSettings.SmsSettings.DesiredPriceBorder);

            return(isNew
                   .And(isOwner)
                   .And(priceLower)
                   .IsSatisfiedBy(order));
        }