95 lines
3.9 KiB
C#
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");
|
|
}
|
|
|
|
}
|
|
|
|
}
|