コード例 #1
0
        public void TupleKeyInfoComparerNullThrowsException()
        {
            var keyInfo  = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId, m.GroupId2));
            var comparer = keyInfo.KeyComparer;

            comparer.Compare(null, null);
        }
コード例 #2
0
        public void TupleKeyInfoIsEmpty()
        {
            var keyInfo = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId, m.GroupId2));

            Assert.IsFalse(keyInfo.IsEmptyKey(Tuple.Create((int?)1, 1)));
            Assert.IsTrue(keyInfo.IsEmptyKey(Tuple.Create((int?)null, 1)));
        }
コード例 #3
0
        public void TupleKeyInfoComparerDescending()
        {
            var keyInfo  = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId, m.GroupId2), SortOrder.Descending, SortOrder.Descending);
            var comparer = keyInfo.KeyComparer;

            Assert.AreEqual(0, comparer.Compare(
                                Tuple.Create((int?)null, 1),
                                Tuple.Create((int?)null, 1)));

            Assert.AreEqual(1, comparer.Compare(
                                Tuple.Create((int?)null, 1),
                                Tuple.Create((int?)1, 1)));

            Assert.AreEqual(-1, comparer.Compare(
                                Tuple.Create((int?)1, 1),
                                Tuple.Create((int?)null, 1)));


            Assert.AreEqual(0, comparer.Compare(
                                Tuple.Create((int?)1, 1),
                                Tuple.Create((int?)1, 1)));

            Assert.AreEqual(1, comparer.Compare(
                                Tuple.Create((int?)1, 1),
                                Tuple.Create((int?)2, 1)));

            Assert.AreEqual(-1, comparer.Compare(
                                Tuple.Create((int?)2, 1),
                                Tuple.Create((int?)1, 1)));


            Assert.AreEqual(1, comparer.Compare(
                                Tuple.Create((int?)1, 1),
                                Tuple.Create((int?)1, 2)));

            Assert.AreEqual(-1, comparer.Compare(
                                Tuple.Create((int?)1, 2),
                                Tuple.Create((int?)1, 1)));
        }
コード例 #4
0
        public bool TryCreateKeyInfo <TEntity, TKey>(
            Expression <Func <TEntity, TKey> > keySelector,
            out IKeyInfo <TEntity, TKey> result) where TEntity : class
        {
            if (!ReflectionHelper.IsTuple(typeof(TKey)))
            {
                result = null;
                return(false);
            }

            IKeyInfoHelper helper = TupleKeyInfo <TEntity, TKey> .KeyInfoHelper;

            MemberInfo[] members;

            if (!helper.TryParseKeySelectorExpression(keySelector.Body, true, out members))
            {
                result = null;
                return(false);
            }

            result = new TupleKeyInfo <TEntity, TKey>(members);
            return(true);
        }
コード例 #5
0
        public void TupleKeyInfoIsEmptyThatCannot()
        {
            var keyInfo = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId2));

            Assert.IsFalse(keyInfo.IsEmptyKey(Tuple.Create(1)));
        }
コード例 #6
0
        public void TupleKeyInfoCreation2()
        {
            var keyInfo = TupleKeyInfo.Create((Member m) => new Tuple <int?, int>(m.GroupId, m.GroupId2));

            Assert.AreEqual(2, keyInfo.EntityKeyMembers.Length);
        }