287 lines
9.1 KiB
C#
287 lines
9.1 KiB
C#
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using NUnit.Framework;
|
|
|
|
namespace ScrewTurn.Wiki.SearchEngine.Tests {
|
|
|
|
[TestFixture]
|
|
public class SearchResultCollectionTests : TestsBase {
|
|
|
|
[Test]
|
|
public void Constructor_NoCapacity() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
Assert.AreEqual(0, collection.Count, "Wrong count (collection should be empty)");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithCapacity() {
|
|
SearchResultCollection collection = new SearchResultCollection(15);
|
|
Assert.AreEqual(0, collection.Count, "Wrong count (collection should be empty)");
|
|
Assert.AreEqual(15, collection.Capacity, "Wrong capacity");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void Constructor_InvalidCapacity() {
|
|
SearchResultCollection collection = new SearchResultCollection(0);
|
|
}
|
|
|
|
[Test]
|
|
public void AddAndCount() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
Assert.AreEqual(0, collection.Count);
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
Assert.AreEqual(2, collection.Count, "Wrong count (collection should contain 2 items)");
|
|
Assert.AreEqual(res, collection[0], "Wrong item at index 0");
|
|
Assert.AreEqual(res2, collection[1], "Wrong item at index 1");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void Add_NullItem() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
collection.Add(null);
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentException))]
|
|
public void Add_DuplicateItem() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
collection.Add(res);
|
|
}
|
|
|
|
[Test]
|
|
public void Clear() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
Assert.AreEqual(1, collection.Count, "Wrong count (collection should contain 1 item)");
|
|
|
|
collection.Clear();
|
|
Assert.AreEqual(0, collection.Count, "Wrong count (collection should be empty)");
|
|
}
|
|
|
|
[Test]
|
|
public void Contains() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
Assert.IsTrue(collection.Contains(res), "Collection should contain item");
|
|
Assert.IsFalse(collection.Contains(res2), "Collection should not contain item");
|
|
|
|
Assert.IsFalse(collection.Contains(null), "Contains should return false");
|
|
}
|
|
|
|
[Test]
|
|
public void GetSearchResult() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
IDocument doc1 = MockDocument("d", "d", "d", DateTime.Now);
|
|
IDocument doc2 = MockDocument("d2", "d", "d", DateTime.Now);
|
|
IDocument doc3 = MockDocument("d3", "d", "d", DateTime.Now);
|
|
SearchResult res = new SearchResult(doc1);
|
|
SearchResult res2 = new SearchResult(doc2);
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
Assert.AreEqual(res, collection.GetSearchResult(doc1), "Wrong search result object");
|
|
Assert.IsNull(collection.GetSearchResult(doc3), "GetSearchResult should return null");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void GetSearchResult_NullDocument() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
collection.GetSearchResult(null);
|
|
}
|
|
|
|
[Test]
|
|
public void CopyTo() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
SearchResult[] results = new SearchResult[2];
|
|
collection.CopyTo(results, 0);
|
|
|
|
Assert.AreEqual(res, results[0], "Wrong result item");
|
|
Assert.AreEqual(res2, results[1], "Wrong result item");
|
|
|
|
results = new SearchResult[3];
|
|
collection.CopyTo(results, 0);
|
|
|
|
Assert.AreEqual(res, results[0], "Wrong result item");
|
|
Assert.AreEqual(res2, results[1], "Wrong result item");
|
|
Assert.IsNull(results[2], "Non-null item");
|
|
|
|
results = new SearchResult[3];
|
|
collection.CopyTo(results, 1);
|
|
|
|
Assert.IsNull(results[0], "Non-null item");
|
|
Assert.AreEqual(res, results[1], "Wrong result item");
|
|
Assert.AreEqual(res2, results[2], "Wrong result item");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void CopyTo_NullArray() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
collection.CopyTo(null, 0);
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void CopyTo_InvalidIndex_Negative() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult[] results = new SearchResult[10];
|
|
|
|
collection.CopyTo(results, -1);
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void CopyTo_InvalidIndex_TooBig() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult[] results = new SearchResult[10];
|
|
|
|
collection.CopyTo(results, 10);
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void CopyTo_ArrayTooSmall() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
SearchResult[] results = new SearchResult[1];
|
|
|
|
collection.CopyTo(results, 0);
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void CopyTo_NoSpaceAtIndex() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
SearchResult[] results = new SearchResult[2];
|
|
|
|
collection.CopyTo(results, 1);
|
|
}
|
|
|
|
[Test]
|
|
public void ReadOnly() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
Assert.IsFalse(collection.IsReadOnly);
|
|
}
|
|
|
|
[Test]
|
|
public void Remove() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
SearchResult res3 = new SearchResult(MockDocument("d3", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
Assert.IsTrue(collection.Remove(res), "Remove should return true");
|
|
Assert.IsFalse(collection.Remove(res3), "Remove should return false");
|
|
Assert.AreEqual(1, collection.Count, "Wrong count");
|
|
Assert.AreEqual(res2, collection[0], "Wrong item at index 0");
|
|
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentNullException))]
|
|
public void Remove_NullItem() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
collection.Remove(null);
|
|
}
|
|
|
|
[Test]
|
|
public void GetEnumerator() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
int count = 0;
|
|
foreach(SearchResult r in collection) {
|
|
count++;
|
|
}
|
|
Assert.AreEqual(2, count, "Wrong count - enumerator does not work");
|
|
}
|
|
|
|
[Test]
|
|
public void Indexer() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
|
|
SearchResult res = new SearchResult(MockDocument("d", "d", "d", DateTime.Now));
|
|
SearchResult res2 = new SearchResult(MockDocument("d2", "d", "d", DateTime.Now));
|
|
|
|
collection.Add(res);
|
|
collection.Add(res2);
|
|
|
|
Assert.AreEqual(res, collection[0], "Wrong item");
|
|
Assert.AreEqual(res2, collection[1], "Wrong item");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(IndexOutOfRangeException))]
|
|
public void Indexer_InvalidIndex_Negative() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
SearchResult i = collection[-1];
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(IndexOutOfRangeException))]
|
|
public void Indexer_InvalidIndex_TooBig() {
|
|
SearchResultCollection collection = new SearchResultCollection();
|
|
SearchResult i = collection[1];
|
|
}
|
|
|
|
}
|
|
|
|
}
|