public override void Define() { TestFact fact = null; When() .Match(() => fact, x => x.IntProperty % 2 == 0); Then() .Do(_ => Nothing()); }
public override void Define() { TestFact fact = null; When() .Match(() => fact, x => x.StringProperty.StartsWith("Valid"), x => x.IntProperty % 2 == 0); Then() .Do(_ => Nothing()); }
public void Setup() { SetupRule <TestRule>(); _facts = new TestFact[FactCount]; for (int i = 0; i < FactCount; i++) { _facts[i] = new TestFact { StringProperty = $"Valid {i}", IntProperty = i }; } }
public void Add_NewInstanceDuplicateFacts_AddedResult() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Descending, SortDirection.Ascending); var duplicateFact1 = new TestFact(1, "A"); var duplicateFact2 = new TestFact(1, "A"); // Act var facts = AsFact(duplicateFact1, duplicateFact2); var result = target.Add(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Added, duplicateFact1, duplicateFact2); }
public void Add_NewInstance_AddedResult_IntThenString_DescendingThenDescending() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Descending, SortDirection.Descending); var fact1_B = new TestFact(1, "B"); var fact1_A = new TestFact(1, "A"); var fact2_C = new TestFact(2, "C"); // Act var facts = AsFact(fact2_C, fact1_B, fact1_A); var result = target.Add(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Added, fact2_C, fact1_B, fact1_A); }
public void Add_NewInstance_AddedResult_DescendingThenDescending() { // Arrange var target = CreateTarget_SortWithInt1AndInt2(SortDirection.Descending, SortDirection.Descending); var fact1_2 = new TestFact(1, 2); var fact1_1 = new TestFact(1, 1); var fact2_3 = new TestFact(2, 3); // Act var facts = AsFact(fact2_3, fact1_2, fact1_1); var result = target.Add(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Added, fact2_3, fact1_2, fact1_1); }
public void Modify_ExistingDuplicateFacts_ModifiedResult() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Ascending); var fact1 = new TestFact(1, "A"); var fact2 = new TestFact(1, "A"); var facts = AsFact(fact1, fact2); target.Add(null, EmptyTuple(), facts); // Act var result = target.Modify(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, fact1, fact2); }
public void Add_OldInstanceNewFacts_ModifiedResult_DescendingThenAscending() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Descending); var fact1 = new TestFact(1, "B"); var fact2 = new TestFact(1, "A"); var fact3 = new TestFact(2, "C"); target.Add(null, EmptyTuple(), AsFact(fact1, fact3)); // Act var facts = AsFact(fact2); var result = target.Add(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, fact1, fact2, fact3); }
public void Remove_ExistingDuplicateFactsRemovedOneByOne_ModifiedResult() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Ascending); var fact1 = new TestFact(1, "A"); var fact2 = new TestFact(1, "B"); var fact3 = new TestFact(1, "B"); var facts = AsFact(fact1, fact2, fact3); target.Add(null, EmptyTuple(), facts); // Act target.Remove(null, EmptyTuple(), facts.Skip(1).Take(1).ToArray()).ToArray(); var result = target.Remove(null, EmptyTuple(), facts.Skip(2).Take(1).ToArray()).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, fact1); }
public void Remove_ExistingFactsSameValues_ModifiedResult() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Ascending); var fact1 = new TestFact(1, "A"); var fact2 = new TestFact(1, "B"); var fact3 = new TestFact(1, "C"); var facts = AsFact(fact1, fact2, fact3); target.Add(null, EmptyTuple(), facts); // Act var toRemove = new[] { facts.ElementAt(1) }; var result = target.Remove(null, EmptyTuple(), toRemove).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, fact1, fact3); }
public void Modify_ExistingFactsDifferentValues_ModifiedResult_AscendingThenAscending() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Ascending); var fact1 = new TestFact(1, "A"); var fact2 = new TestFact(1, "B"); var facts = AsFact(fact1, fact2); target.Add(null, EmptyTuple(), facts); // Act facts[0].Value = new TestFact(1, "D"); facts[1].Value = new TestFact(1, "C"); var result = target.Modify(null, EmptyTuple(), facts).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, new TestFact(1, "C"), new TestFact(1, "D")); }
public void Modify_ExistingDuplicateFactsDeduplicatedOneByOne_ModifiedResult() { // Arrange var target = CreateTarget_SortWithInt1AndString(SortDirection.Ascending, SortDirection.Ascending); var facts = AsFact(new TestFact(1, "A"), new TestFact(1, "A")); target.Add(null, EmptyTuple(), facts); // Act var fact1 = new TestFact(1, "B"); facts[0].Value = fact1; target.Modify(null, EmptyTuple(), facts.Take(1)).ToArray(); var fact2 = new TestFact(1, "C"); facts[1].Value = fact2; var result = target.Modify(null, EmptyTuple(), facts.Skip(1).Take(1)).ToArray(); // Assert AssertAggregationResult(result, AggregationAction.Modified, fact1, fact2); }
public GroupElement(TestFact fact) { Id = fact.Id; Key = fact.Key; }
public GroupKey(TestFact fact) { Value = fact.Key; CachedPayload = fact.Payload; }