mongo-csharp-driver /tests/MongoDB.Driver.Tests/Specifications/crud/DistinctTest.cs

Language C# Lines 69
MD5 Hash 35cee415c10c92e4f1d9a93c8223b659 Estimated Cost $1,090 (why?)
Repository git://github.com/mongodb/mongo-csharp-driver.git View Raw File View Project SPDX
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/* Copyright 2010-2015 MongoDB Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using FluentAssertions;
using MongoDB.Bson;

namespace MongoDB.Driver.Tests.Specifications.crud
{
    public class DistinctTest : CrudOperationWithResultTestBase<List<int>>
    {
        private string _fieldName;
        private BsonDocument _filter;
        private DistinctOptions _options = new DistinctOptions();

        protected override bool TrySetArgument(string name, BsonValue value)
        {
            switch (name)
            {
                case "fieldName":
                    _fieldName = value.ToString();
                    return true;
                case "filter":
                    _filter = (BsonDocument)value;
                    return true;
            }

            return false;
        }

        protected override List<int> ConvertExpectedResult(BsonValue expectedResult)
        {
            return ((BsonArray)expectedResult).Select(x => x.ToInt32()).ToList();
        }

        protected override List<int> ExecuteAndGetResult(IMongoCollection<BsonDocument> collection, bool async)
        {
            if (async)
            {
                var cursor = collection.DistinctAsync<int>(_fieldName, _filter, _options).GetAwaiter().GetResult();
                return cursor.ToListAsync().GetAwaiter().GetResult();
            }
            else
            {
                return collection.Distinct<int>(_fieldName, _filter, _options).ToList();
            }
        }

        protected override void VerifyResult(List<int> actualResult, List<int> expectedResult)
        {
            actualResult.Should().Equal(expectedResult);
        }
    }
}
Back to Top