コード例 #1
0
        /// <summary>
        /// このオブジェクトと引数で指定されたオブジェクトの等価性比較を行います。
        /// <see cref="TupleEntry"/>の等価性比較は互いのキーと値が一致するかどうかで判断されます。
        /// </summary>
        /// <param name="obj">比較対象のオブジェクト</param>
        /// <returns>2つのオブジェクトが等価である場合<c>true</c></returns>
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }
            if (this == obj)
            {
                return(true);
            }
            ITupleEntry that = obj as ITupleEntry;

            if (that == null)
            {
                return(false);
            }
            if (HasKey)
            {
                return(Key.Equals(that.Key) && Value.Equals(that.Value));
            }
            if (that.HasKey)
            {
                return(false);
            }
            return(Value.Equals(that.Value));
        }
コード例 #2
0
        public void OfValue_WhenNullSpecified_ThrowsException()
        {
            // Arrange

            // Act

            // Assert
            Assert.Throws <ArgumentNullException>(() =>
            {
                ITupleEntry e0 = TupleEntry.OfValue(null);
            });
        }
コード例 #3
0
        public void OfValue_WhenNonEmptyStringSpecified_ReturnsInstanceHasNotKey()
        {
            // Arrange

            // Act
            ITupleEntry e0 = TupleEntry.OfValue("v0");

            // Assert
            Assert.AreEqual(false, e0.HasKey);
            Assert.AreEqual(null, e0.Key);
            Assert.AreEqual("v0", e0.Value);
        }
コード例 #4
0
        public void OfPair_WhenNullKeySpecified_ReturnsInstanceHasNotKey()
        {
            // Arrange

            // Act
            ITupleEntry e0 = TupleEntry.OfPair(null, "v0");

            // Assert
            Assert.AreEqual(false, e0.HasKey);
            Assert.AreEqual(null, e0.Key);
            Assert.AreEqual("v0", e0.Value);
        }
コード例 #5
0
        public void OfPair_WhenEmptyStringKeySpecified_ThrowsException()
        {
            // Arrange

            // Act

            // Assert
            Assert.Throws <ArgumentException>(() =>
            {
                ITupleEntry e0 = TupleEntry.OfPair("", "v0");
            });
        }
コード例 #6
0
        public void OfPair_WhenNonEmptyStringSpecified_ReturnsInstance()
        {
            // Arrange

            // Act
            ITupleEntry e0 = TupleEntry.OfPair("k0", "v0");

            // Assert
            Assert.AreEqual(true, e0.HasKey);
            Assert.AreEqual("k0", e0.Key);
            Assert.AreEqual("v0", e0.Value);
        }
コード例 #7
0
        public void Equals_When2InstanceRepresentSameValue_ReturnsTrue()
        {
            // Arrange
            ITupleEntry e0 = TupleEntry.OfPair("a", "b");
            ITupleEntry e1 = TupleEntry.OfPair("a", "c");
            ITupleEntry e2 = TupleEntry.OfPair("a", "b");
            ITupleEntry e3 = TupleEntry.OfPair(null, "b");
            ITupleEntry e4 = TupleEntry.OfValue("b");

            // Act

            // Assert
            Assert.AreEqual(false, e0.Equals(null));
            Assert.AreEqual(false, e0.Equals(e1));
            Assert.AreEqual(true, e0.Equals(e2));
            Assert.AreEqual(false, e0.Equals(e3));
            Assert.AreEqual(true, e4.Equals(e3));
        }