public void TupleKeyInfoComparerNullThrowsException() { var keyInfo = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId, m.GroupId2)); var comparer = keyInfo.KeyComparer; comparer.Compare(null, null); }
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))); }
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))); }
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); }
public void TupleKeyInfoIsEmptyThatCannot() { var keyInfo = TupleKeyInfo.Create((Member m) => Tuple.Create(m.GroupId2)); Assert.IsFalse(keyInfo.IsEmptyKey(Tuple.Create(1))); }
public void TupleKeyInfoCreation2() { var keyInfo = TupleKeyInfo.Create((Member m) => new Tuple <int?, int>(m.GroupId, m.GroupId2)); Assert.AreEqual(2, keyInfo.EntityKeyMembers.Length); }