public void Fire_OneMatchingFactAssertedAndRetractedAndAssertedAgain_FiresOnce()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact3 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };

            Session.Insert(fact1);
            Session.Retract(fact2);
            Session.Insert(fact3);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_OneMatchingFactsAndOneInvalidInsertedTheInvalidUpdatedToValid_FiresOnceWithTwoFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(2)
            {
                TestProperty = "Invalid Value"
            };
            var fact21 = new EquatableFact(2)
            {
                TestProperty = "Valid Value 2"
            };

            Session.Insert(fact1);
            Session.Insert(fact2);

            Session.Update(fact21);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(2, GetFiredFact <IEnumerable <EquatableFact> >().Count());
        }
        public void Fire_TwoMatchingFactsInsertedOneRetracted_FiresOnceWithOneFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(2)
            {
                TestProperty = "Valid Value 2"
            };
            var fact21 = new EquatableFact(2)
            {
                TestProperty = "Valid Value 2"
            };

            Session.Insert(fact1);
            Session.Insert(fact2);
            Session.Retract(fact21);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(1, GetFiredFact <IEnumerable <EquatableFact> >().Count());
        }
Exemple #4
0
        public override void Define()
        {
            EquatableFact fact1 = null;

            When()
            .Match <EquatableFact>(() => fact1, f => f.TestProperty.StartsWith("Valid"));
            Then()
            .Do(ctx => Action());
        }
        public void Fire_DuplicateInsert_Throws()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(1) {TestProperty = "Valid Value 2"};

            //Act - Assert
            Session.Insert(fact1);
            Assert.Throws<ArgumentException>(() => Session.Insert(fact2));
        }
        public void Fire_OneMatchingFactAssertedAndRetracted_DoesNotFire()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            Session.Insert(fact1);
            Session.Retract(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertDidNotFire();
        }
        public void Fire_OneFactUpdatedFromInvalidToMatching_FiresOnce()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Invalid Value 1"};
            var fact2 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            Session.Insert(fact1);
            Session.Update(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_OneMatchingFactInsertedThenUpdated_FiresOnceWithOneFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact11 = new EquatableFact(1) {TestProperty = "Valid Value 1"};

            Session.Insert(fact1);
            Session.Update(fact11);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(1, GetFiredFact<IEnumerable<EquatableFact>>().Count());
        }
        public void Fire_DuplicateInsert_Throws()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 2"
            };

            //Act - Assert
            Session.Insert(fact1);
            Assert.Throws <ArgumentException>(() => Session.Insert(fact2));
        }
        public void Fire_OneMatchingFact_FiresOnce()
        {
            //Arrange
            var fact = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };

            Session.Insert(fact);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_OneMatchingFactAssertedAndRetractedAndAssertedAgain_FiresOnce()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact3 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            Session.Insert(fact1);
            Session.Retract(fact2);
            Session.Insert(fact3);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_TwoMatchingFactsInsertedOneRetracted_FiresOnceWithOneFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(2) {TestProperty = "Valid Value 2"};
            var fact21 = new EquatableFact(2) {TestProperty = "Valid Value 2"};

            Session.Insert(fact1);
            Session.Insert(fact2);
            Session.Retract(fact21);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(1, GetFiredFact<IEnumerable<EquatableFact>>().Count());
        }
        public void Fire_OneMatchingFactsAndOneInvalidInsertedTheInvalidUpdatedToValid_FiresOnceWithTwoFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(2) {TestProperty = "Invalid Value"};
            var fact21 = new EquatableFact(2) {TestProperty = "Valid Value 2"};

            Session.Insert(fact1);
            Session.Insert(fact2);

            Session.Update(fact21);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(2, GetFiredFact<IEnumerable<EquatableFact>>().Count());
        }
        public void Fire_OneFactUpdatedFromInvalidToMatching_FiresOnce()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Invalid Value 1"
            };
            var fact2 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };

            Session.Insert(fact1);
            Session.Update(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_OneMatchingFactAssertedAndRetracted_DoesNotFire()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };

            Session.Insert(fact1);
            Session.Retract(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertDidNotFire();
        }
        public void Fire_TwoMatchingFacts_FiresTwice()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact2 = new EquatableFact(2)
            {
                TestProperty = "Valid Value 2"
            };

            Session.Insert(fact1);
            Session.Insert(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertFiredTwice();
        }
        public void Fire_OneMatchingFactInsertedThenUpdated_FiresOnceWithOneFactInCollection()
        {
            //Arrange
            var fact1 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };
            var fact11 = new EquatableFact(1)
            {
                TestProperty = "Valid Value 1"
            };

            Session.Insert(fact1);
            Session.Update(fact11);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
            Assert.AreEqual(1, GetFiredFact <IEnumerable <EquatableFact> >().Count());
        }
        public void Fire_OneMatchingFact_FiresOnce()
        {
            //Arrange
            var fact = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            Session.Insert(fact);

            //Act
            Session.Fire();

            //Assert
            AssertFiredOnce();
        }
        public void Fire_TwoMatchingFacts_FiresTwice()
        {
            //Arrange
            var fact1 = new EquatableFact(1) {TestProperty = "Valid Value 1"};
            var fact2 = new EquatableFact(2) {TestProperty = "Valid Value 2"};
            Session.Insert(fact1);
            Session.Insert(fact2);

            //Act
            Session.Fire();

            //Assert
            AssertFiredTwice();
        }