private static void AssertCanParse(Expression <Func <ExportDefinition, bool> > constraint, string contractName, IEnumerable <KeyValuePair <string, Type> > requiredMetadata)
        {
            Assert.NotNull(constraint);

            string contractNameResult = null;
            IEnumerable <KeyValuePair <string, Type> > requiredMetadataResult = null;
            bool success = ConstraintParser.TryParseConstraint(constraint, out contractNameResult, out requiredMetadataResult);

            Assert.True(success);
            Assert.Equal(contractName, contractNameResult);
            EnumerableAssert.AreEqual(requiredMetadata, requiredMetadataResult);
        }
        private static void AssertCanNotParse(Expression <Func <ExportDefinition, bool> > constraint)
        {
            Assert.NotNull(constraint);

            string contractNameResult;
            IEnumerable <KeyValuePair <string, Type> > requiredMetadataResult;

            var success = ConstraintParser.TryParseConstraint(constraint, out contractNameResult, out requiredMetadataResult);

            Assert.False(success);
            Assert.Null(contractNameResult);
            Assert.Null(requiredMetadataResult);
        }