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()); }
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); }