public void InMemorySuggester_ReadSmallTestFileInMobyFormat_CheckFileReadingVerifyThatReadsAllStrings()
        {
            var storageMock = this.kernel.GetMock<IinMemoryStorageStructure>();

            var StorageStructure = new InMemoryHashBasedWordStructure();
            MobyToMemoryReader concreteReader = new MobyToMemoryReader();
            var sut = new InMemorySuggester(StorageStructure, concreteReader, SmallMobyTestDataFileName);

            var s1 = sut.GetSuggestions(new SimpleStringObject("oneWord"));
            var s2 = sut.GetSuggestions(new SimpleStringObject("twoWord"));
            var s3 = sut.GetSuggestions(new SimpleStringObject("threeWord"));
            var s4 = sut.GetSuggestions(new SimpleStringObject("fourWord"));

            CollectionAssert.AreEqual(s1.Select(s => s.Value.GetLiteralValue()).ToArray(), new string[] { "OneWordSyn", "OneWordSynTWO" });
            CollectionAssert.AreEqual(s2.Select(s => s.Value.GetLiteralValue()).ToArray(), new string[] { "TwoWordSyn" });
            CollectionAssert.AreEqual(s3.Select(s => s.Value.GetLiteralValue()).ToArray(), new string[] { "threeWodSyn", "fourWord" });
            CollectionAssert.AreEqual(s4.Select(s => s.Value.GetLiteralValue()).ToArray(), new string[] { "OneWordSyn" });
        }
 public void InMemorySuggester_RequestKeywords_CheckThatItPassesRequestToStorage()
 {
     var storageMock = this.kernel.GetMock<IinMemoryStorageStructure>();
     var someKeyword = "someRequestiongKeyword";
     storageMock.Setup(m => m.GetSynonyms(It.IsAny<string>())).Returns(new StringKeywordWithRaiting[] { });
     var MoquedStorageStructure = this.kernel.Get<IinMemoryStorageStructure>();
     var MoquedReader = this.kernel.Get<IToMemoryReader>();
     var sut = new InMemorySuggester(MoquedStorageStructure, MoquedReader, SmallFileWithTestDataFileName);
     var keywordMock = this.kernel.GetMock<ISemanticObject>();
     keywordMock.Setup(k => k.GetLiteralValue()).Returns(someKeyword);
     var result = sut.GetSuggestions(keywordMock.Object);
     storageMock.VerifyAll();
 }
        public void InMemorySuggester_LoadSomeData_CheckThatCreatesCorrectNotNullISuggestionInstances()
        {
            var storageMock = this.kernel.GetMock<IinMemoryStorageStructure>();
            string fakeKeyword1 = "keyword";
            string fakeKeyword2 = "keyword1";
            var oneKWstr = "one";
            var oneKW = new StringKeywordWithRaiting(oneKWstr);
            var twoKW = new StringKeywordWithRaiting("two");
            var threeKW = new StringKeywordWithRaiting("three");
            var fourKW = new StringKeywordWithRaiting("four");
            storageMock.Setup(s => s.GetSynonyms(fakeKeyword1)).Returns(new StringKeywordWithRaiting[] { oneKW, twoKW, threeKW });
            storageMock.Setup(s => s.GetSynonyms(fakeKeyword2)).Returns(new StringKeywordWithRaiting[] { oneKW, fourKW });

            var MoquedStorageStructure = this.kernel.Get<IinMemoryStorageStructure>();
            var MoquedReader = this.kernel.Get<IToMemoryReader>();
            var sut = new InMemorySuggester(MoquedStorageStructure, MoquedReader, SmallFileWithTestDataFileName);
            var keywordMock1 = new Moq.Mock<ISemanticObject>();
            keywordMock1.Setup(k => k.GetLiteralValue()).Returns(fakeKeyword1);
            var keywordMock2 = new Moq.Mock<ISemanticObject>();
            keywordMock2.Setup(k => k.GetLiteralValue()).Returns(fakeKeyword2);

            var result = sut.GetSuggestions(new ISemanticObject[] { keywordMock1.Object, keywordMock2.Object });
            Assert.That(result, Is.Not.Null);
            Assert.True(result.Length == 4);
            Assert.True(result[0].GetType().Equals(typeof(StringKeywordSuggestion)));
            Assert.True(((StringKeywordSuggestion)result[0]).Value.GetLiteralValue().Equals(oneKWstr));
            Assert.True(result[0].GetTextValue().Equals(oneKWstr));

            // Check that relevance is not set means = zero
            Assert.That(result, Is.All.Matches((ISuggestionInstance s) => s.Relevance == 0));
        }