예제 #1
0
파일: Join.cs 프로젝트: lulzzz/elfie-arriba
        public JoinDictionary(int initialCapacity)
        {
            ITypeProvider         typeProvider = TypeProviderFactory.Get(typeof(T));
            IEqualityComparer <T> comparer     = new EqualityComparerAdapter <T>(typeProvider.TryGetComparer());

            _dictionary  = new Dictionary5 <T, int>(comparer, initialCapacity);
            _valueCopier = (IValueCopier <T>)(typeProvider.TryGetCopier());
        }
예제 #2
0
        public void WhenCreated_ShouldWorksProperly()
        {
            // Arrange
            Mock <IEqualityComparer <string> > original = new Mock <IEqualityComparer <string> >();

            original.Setup(x => x.Equals(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(true);
            original.Setup(x => x.GetHashCode(It.IsAny <string>()))
            .Returns(1);
            Func <int, string> converter = number => number.ToString(CultureInfo.InvariantCulture);
            EqualityComparerAdapter <string, int> target = new EqualityComparerAdapter <string, int>(original.Object, converter);

            // Act
            bool equalityResult = target.Equals(123, 99);
            int  hashCode       = target.GetHashCode(45);

            // Assert
            equalityResult.Should().BeTrue();
            hashCode.Should().Be(1);
            original.Verify(x => x.Equals("123", "99"), Times.Once);
            original.Verify(x => x.GetHashCode("45"), Times.Once);
        }