Ejemplo n.º 1
0
        public async Task IdenticalItemsMatchIgnoringItemsFilteredOutAsync()
        {
            var now = DateTime.Now;

            await AddItemToCollection1Async(0, "Item1", 1, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection1Async(0, "Item2", 21, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));
            await AddItemToCollection2Async(0, "Item1", 1, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection2Async(0, "Item2", 21, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));

            var item = new Item(0, "Item3", 22, now, null)
            {
                Ignore = true
            };
            await _collection1.InsertOneAsync(item);

            var comparer = new MongoDbComparer <Item>(ConnectionString1, Database1, Collection1, ConnectionString2, Database2, Collection2,
                                                      filter: i => !i.Ignore);

            var results = await comparer.CompareAsync(i => i.Name);

            results.Match.Should().BeTrue();
            results.OnlyInCollection1.Should().BeEmpty();
            results.OnlyInCollection2.Should().BeEmpty();
            results.Different.Should().BeEmpty();
        }
Ejemplo n.º 2
0
        public async Task IdenticalItemsMatchAsync()
        {
            var now = DateTime.Now;

            await AddItemToCollection1Async(0, "Item1", 1, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection1Async(0, "Item2", 21, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));
            await AddItemToCollection2Async(0, "Item1", 1, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection2Async(0, "Item2", 21, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));

            var results = await _comparer.CompareAsync(i => i.Name);

            results.Match.Should().BeTrue();
            results.OnlyInCollection1.Should().BeEmpty();
            results.OnlyInCollection2.Should().BeEmpty();
            results.Different.Should().BeEmpty();
        }
Ejemplo n.º 3
0
        public async Task NonIdenticalItemsMatchIfTheNonMatchingFieldIsIgnoredAsync()
        {
            var now = DateTime.Now;

            await AddItemToCollection1Async(0, "Item1", 1, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection1Async(0, "Item2", 1, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));
            await AddItemToCollection2Async(0, "Item1", 2, now, new BsonDocument("Foo", "1").AddRange(new BsonDocument("Bar", 0)));
            await AddItemToCollection2Async(0, "Item2", 2, now.AddDays(1), new BsonDocument("FooBar", "2").AddRange(new BsonDocument("BarFoo", 1)));

            var comparer = new MongoDbComparer <Item>(ConnectionString1, Database1, Collection1, ConnectionString2, Database2, Collection2, new[] { "Number" });
            var results  = await comparer.CompareAsync(i => i.Name);

            results.Match.Should().BeTrue();
            results.OnlyInCollection1.Should().BeEmpty();
            results.OnlyInCollection2.Should().BeEmpty();
            results.Different.Should().BeEmpty();
        }