/// <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)); }
public void OfValue_WhenNullSpecified_ThrowsException() { // Arrange // Act // Assert Assert.Throws <ArgumentNullException>(() => { ITupleEntry e0 = TupleEntry.OfValue(null); }); }
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); }
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); }
public void OfPair_WhenEmptyStringKeySpecified_ThrowsException() { // Arrange // Act // Assert Assert.Throws <ArgumentException>(() => { ITupleEntry e0 = TupleEntry.OfPair("", "v0"); }); }
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); }
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)); }