Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ConstraintAssert.cs « UnitTesting « Composition « ComponentModel « System « ComponentModelUnitTest « Tests « System.ComponentModel.Composition « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1266032df50f75e6b7bd3f559128b3f33b807c2c (plain)
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
// -----------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// -----------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.UnitTesting;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.ComponentModel.Composition.Primitives;

namespace System.ComponentModel.Composition.UnitTesting
{
    internal static class ConstraintAssert
    {
        public static void Contains(Expression<Func<ExportDefinition, bool>> constraint, string contractName)
        {
            Contains(constraint, contractName, Enumerable.Empty<KeyValuePair<string, Type>>());
        }

        public static void Contains(Expression<Func<ExportDefinition, bool>> constraint, string contractName, IEnumerable<KeyValuePair<string, Type>> requiredMetadata)
        {
            string actualContractName;
            IEnumerable<KeyValuePair<string, Type>> actualRequiredMetadata;
            bool success = TryParseConstraint(constraint, out actualContractName, out actualRequiredMetadata);

            Assert.IsTrue(success);
            Assert.AreEqual(contractName, actualContractName);
            EnumerableAssert.AreEqual(requiredMetadata, actualRequiredMetadata);
        }

        private static bool TryParseConstraint(Expression<Func<ExportDefinition, bool>> constraint, out string contractName, out IEnumerable<KeyValuePair<string, Type>> requiredMetadata)
        {
            return ContraintParser.TryParseConstraint(constraint, out contractName, out requiredMetadata);
        }
    }
}