コード例 #1
0
        public void GetHashCode_TwoObjectsDifferentKeySameValue_DifferentHashesReturned()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("abc", "MyValue");
            FingerprintContribution contribution2 = new FingerprintContribution("xyz", "MyValue");

            Assert.AreNotEqual(contribution1.GetHashCode(), contribution2.GetHashCode());
        }
コード例 #2
0
        public ScanResultFingerprintUnitTests()
        {
#if FIND_SPECIAL_VALUES
            Dictionary <int, string> memory = new Dictionary <int, string>();

            while (true)
            {
                string value = Guid.NewGuid().ToString();

                FingerprintContribution fc = new FingerprintContribution("Name", value);
                int hash = fc.GetHashCode();

                if (memory.TryGetValue(hash, out string oldValue))
                {
                    if (oldValue == value)
                    {
                        continue;
                    }

                    _specialNameValue1 = oldValue;
                    _specialNameValue2 = value;
                    memory.Clear();
                    return;
                }
                memory.Add(hash, value);
            }
#else
            _specialNameValue1 = "96303c8f-5ff4-423b-a74d-bab12f37efb2";
            _specialNameValue2 = "f6c89020-5898-460d-974c-6227d48ed5e2";
#endif
        }
コード例 #3
0
        public void GetHashCode_TwoObjectsSameKeySameValue_SameHashReturned()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("MyKey", "MyValue");
            FingerprintContribution contribution2 = new FingerprintContribution("MyKey", "MyValue");

            Assert.AreEqual(contribution1.GetHashCode(), contribution2.GetHashCode());
        }
        public void Equals_OtherHasSameContributionCountAndHashButDifferentContent_ReturnsFalse()
        {
            using (ShimsContext.Create())
            {
                FingerprintContribution fc1 = new FingerprintContribution("Name", _specialNameValue1);
                FingerprintContribution fc2 = new FingerprintContribution("Name", _specialNameValue2);

                Assert.AreEqual(fc1.GetHashCode(), fc2.GetHashCode());

                A11yElement element1 = new ShimA11yElement {
                    NameGet = () => _specialNameValue1
                };
                A11yElement element2 = new ShimA11yElement {
                    NameGet = () => _specialNameValue2
                };
                IFingerprint fingerprint1 = new ScanResultFingerprint(element1, DefaultRule, DefaultScanStatus);
                IFingerprint fingerprint2 = new ScanResultFingerprint(element2, DefaultRule, DefaultScanStatus);

                Assert.AreEqual(fingerprint1.GetHashCode(), fingerprint2.GetHashCode());

                // Ensure that these differ only in specific content
                Assert.AreEqual(0, fingerprint1.CompareTo(fingerprint2));
                Assert.AreEqual(0, fingerprint2.CompareTo(fingerprint1));

                Assert.IsFalse(fingerprint1.Equals(fingerprint2));
                Assert.IsFalse(fingerprint2.Equals(fingerprint1));
            }
        }
コード例 #5
0
        public void CompareTo_OtherHasSameKey_SortsOnValue()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("MyKey", "abc");
            FingerprintContribution contribution2 = new FingerprintContribution("MyKey", "xyz");

            Assert.IsTrue(contribution1.CompareTo(contribution2) < 0);
            Assert.AreEqual(0, contribution1.CompareTo(contribution1));
            Assert.IsTrue(contribution2.CompareTo(contribution1) > 0);
        }
コード例 #6
0
        public void CompareTo_OtherHasDifferentKey_SortsOnKey()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("abc", "MyValue");
            FingerprintContribution contribution2 = new FingerprintContribution("xyz", "MyValue");

            Assert.IsTrue(contribution1.CompareTo(contribution2) < 0);
            Assert.AreEqual(0, contribution1.CompareTo(contribution1));
            Assert.IsTrue(contribution2.CompareTo(contribution1) > 0);
        }
コード例 #7
0
        public void Equals_OtherHasSameKeyAndValue_ReturnsTrue()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("MyKey", "MyValue");
            FingerprintContribution contribution2 = new FingerprintContribution("MyKey", "MyValue");

            Assert.AreEqual(contribution1, contribution2);
            Assert.AreEqual(contribution2, contribution1);
            Assert.AreEqual(contribution1, (object)contribution2);
        }
コード例 #8
0
        public void Equals_OtherHasDifferentValue_ReturnsFalse()
        {
            FingerprintContribution contribution1 = new FingerprintContribution("MyKey", "abc");
            FingerprintContribution contribution2 = new FingerprintContribution("MyKey", "xyz");

            Assert.AreNotEqual(contribution1, contribution2);
            Assert.AreNotEqual(contribution2, contribution1);
            Assert.AreNotEqual(contribution1, (object)contribution2);
        }
コード例 #9
0
        public void Ctor_InputsAreNotTrivial_PropertiesAreCorrect()
        {
            const string key   = "SuperCoolKey";
            const string value = "PhenomenalValue";

            FingerprintContribution contribution = new FingerprintContribution(key, value);

            Assert.AreEqual(key, contribution.Key);
            Assert.AreEqual(value, contribution.Value);
        }
コード例 #10
0
        public void Equals_OtherIsNull_ReturnsFalse()
        {
            FingerprintContribution contribution = new FingerprintContribution("MyKey", "MyValue");
            FingerprintContribution other        = null;

            // Expliicitly call the .Equals method here, since Assert.AreNotEqual
            // includes special handling that bypasses calling the .Equals method
            Assert.IsFalse(contribution.Equals(other));
            Assert.IsFalse(contribution.Equals((object)other));
        }
コード例 #11
0
        public void CompareTo_OtherIsNull_ThrowsArgumentNullException()
        {
            FingerprintContribution contribution = new FingerprintContribution("abc", "xyz");

            try
            {
                contribution.CompareTo(null);
            }
            catch (ArgumentNullException e)
            {
                Assert.AreEqual("other", e.ParamName);
                throw;
            }
        }