screwturn-4/SearchEngine-Tests/WordInfoTests.cs
2009-09-30 13:47:13 +00:00

95 lines
3.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
namespace ScrewTurn.Wiki.SearchEngine.Tests {
[TestFixture]
public class WordInfoTests : TestsBase {
[Test]
public void Constructor() {
WordInfo info = new WordInfo("continuous", 2, 0, WordLocation.Content);
Assert.AreEqual(2, info.FirstCharIndex, "Wrong start index");
Assert.AreEqual(10, info.Text.Length, "Wrong length");
}
[Test]
[ExpectedException(typeof(ArgumentNullException))]
public void Constructor_NullText() {
WordInfo info = new WordInfo(null, 0, 0, WordLocation.Content);
}
[Test]
[ExpectedException(typeof(ArgumentException))]
public void Constructor_EmptyText() {
WordInfo info = new WordInfo("", 0, 0, WordLocation.Content);
}
[Test]
public void Equals() {
WordInfo info1 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info2 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info3 = new WordInfo("word", 10, 1, WordLocation.Content);
WordInfo info4 = new WordInfo("word", 10, 1, WordLocation.Title);
WordInfo info5 = new WordInfo("word2", 0, 0, WordLocation.Content);
Assert.IsTrue(info1.Equals(info2), "info1 should equal info2");
Assert.IsFalse(info1.Equals(info3), "info1 should not equal info3");
Assert.IsFalse(info3.Equals(info4), "info3 should not equal info4");
Assert.IsTrue(info1.Equals(info1), "info1 should equal itself");
Assert.IsFalse(info1.Equals(null), "info1 should not equal null");
Assert.IsFalse(info1.Equals("hello"), "info1 should not equal a string");
Assert.IsFalse(info1.Equals(info5), "info1 should not equal info5");
}
[Test]
public void EqualityOperator() {
WordInfo info1 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info2 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info3 = new WordInfo("word", 10, 1, WordLocation.Content);
WordInfo info4 = new WordInfo("word", 10, 1, WordLocation.Title);
WordInfo info5 = new WordInfo("word2", 0, 0, WordLocation.Content);
Assert.IsTrue(info1 == info2, "info1 should equal info2");
Assert.IsFalse(info1 == info3, "info1 should not equal info3");
Assert.IsFalse(info3 == info4, "info3 should not equal info4");
Assert.IsFalse(info1 == null, "info1 should not equal null");
Assert.IsFalse(info1 == info5, "info1 should not equal info5");
}
[Test]
public void InequalityOperator() {
WordInfo info1 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info2 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info3 = new WordInfo("word", 10, 1, WordLocation.Content);
WordInfo info4 = new WordInfo("word", 10, 1, WordLocation.Title);
WordInfo info5 = new WordInfo("word2", 0, 0, WordLocation.Content);
Assert.IsFalse(info1 != info2, "info1 should equal info2");
Assert.IsTrue(info1 != info3, "info1 should not equal info3");
Assert.IsTrue(info3 != info4, "info3 should not equal info4");
Assert.IsTrue(info1 != null, "info1 should not equal null");
Assert.IsTrue(info1 != info5, "info1 should not equal info5");
}
[Test]
public void CompareTo() {
WordInfo info1 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info2 = new WordInfo("word", 0, 0, WordLocation.Content);
WordInfo info3 = new WordInfo("word", 10, 1, WordLocation.Content);
WordInfo info4 = new WordInfo("word", 10, 1, WordLocation.Title);
WordInfo info5 = new WordInfo("word2", 0, 0, WordLocation.Content);
Assert.AreEqual(0, info1.CompareTo(info2), "info1 should equal info2");
Assert.AreEqual(-3, info1.CompareTo(info3), "info1 should be smaller than info3");
Assert.AreEqual(2, info3.CompareTo(info4), "info3 should be greater than info4");
Assert.AreEqual(1, info1.CompareTo(null), "info1 should be greater than null");
Assert.AreEqual(-1, info1.CompareTo(info5), "info1 should be smaller than info5");
}
}
}