Esempio n. 1
0
        public void TestEntityAndEventComparer()
        {
            var tax1 = new TaxRate(DateTime.Now, 123);
            var tax2 = new TaxRate(DateTime.Now, 123);
            var d1   = new EntityAndEvent(tax1, new DeDupEvent(() => { }));
            var d2   = new EntityAndEvent(tax1, new DeDupEvent(() => { }));

            var d3 = new EntityAndEvent(tax2, new DeDupEvent(() => { }));

            var n1 = new EntityAndEvent(tax1, new NewBookEvent());
            var n2 = new EntityAndEvent(tax1, new NewBookEvent());

            d1.Equals(d2).ShouldBeTrue();
            d1.Equals(d3).ShouldBeFalse();


            d1.Equals(n1).ShouldBeFalse();
            n1.Equals(n2).ShouldBeFalse();

            var ees = (new List <EntityAndEvent> {
                d1, d2, d3, n1, n2
            }).Distinct().ToList();

            ees.Select(x => x.EntityEvent.GetType().Name).ShouldEqual(new [] { "DeDupEvent", "DeDupEvent", "NewBookEvent", "NewBookEvent" });
            ees[0].ShouldEqual(d1);
            ees[1].ShouldEqual(d3);
        }
Esempio n. 2
0
        public void TestEntityAndEventComparerDistinctOrder()
        {
            var tax1 = new TaxRate(DateTime.Now, 123);
            var tax2 = new TaxRate(DateTime.Now, 123);
            var d1   = new EntityAndEvent(tax1, new DeDupEvent(() => { }));
            var d2   = new EntityAndEvent(tax1, new DeDupEvent(() => { }));

            var d3 = new EntityAndEvent(tax2, new DeDupEvent(() => { }));
            var d4 = new EntityAndEvent(tax2, new DeDupEvent(() => { }));

            var ees = (new List <EntityAndEvent> {
                d1, d2, d3, d2, d4
            }).Distinct().ToList();

            ees.Count.ShouldEqual(2);
            ReferenceEquals(ees[0], d1).ShouldBeTrue();
            ReferenceEquals(ees[0], d1).ShouldBeTrue();
            ees[0].ShouldEqual(d1);
            ees[1].ShouldEqual(d3);
        }