public void InMemorySuggester_GetOneSynonyms_CheckValue()
        {
            // content in db to see clearly
            // --
            // oneWord,OneWordSyn, OneWordSynTWO
            // twoWord, TwoWordSyn
            // threeWord, threeWodSyn, threeWodSyn, fourWord
            // fourWord, OneWordSyn
            // --
            var moquedStorage = this.kernel.GetMock<IinMemoryStorageStructure>();
            var oneWordStr = "oneWord";
            var OneWordSynKW = new StringKeywordWithRaiting("OneWordSyn");
            var OneWordSynTWOSynKW = new StringKeywordWithRaiting("OneWordSynTWO");
            moquedStorage.Setup(s => s.GetSynonyms(oneWordStr)).Returns(new StringKeywordWithRaiting[] { OneWordSynKW, OneWordSynTWOSynKW });
            var moquedReader = this.kernel.GetMock<IToMemoryReader>();
            this.sut = new InMemorySuggester(moquedStorage.Object, moquedReader.Object, SmallFileWithTestDataFileName);
            var oneWord_MoquedISemanticObject = this.kernel.GetMock<ISemanticObject>();
            oneWord_MoquedISemanticObject.Setup(s => s.GetLiteralValue()).Returns(oneWordStr);
            var result = this.sut.GetSuggestions(oneWord_MoquedISemanticObject.Object);

            // Expected result, top 3(2 in fact) results
            // OneWordSyn
            // OneWordSynTWO
            Assert.True(result.Length == 2, "There should be 2 suggestions returned");
            Assert.That(result[0].Value.GetLiteralValue(), Is.EqualTo("OneWordSyn"));
            Assert.That(result[1].Value.GetLiteralValue(), Is.EqualTo("OneWordSynTWO"));
        }
        public void WordAndLinksINMemoryTests_AddSynonyms_CheckThemReturned()
        {
            Assert.That(this.sut1.Keyword, Is.EqualTo("aaa"));

            this.sut1.AddSynonym("aOne");
            this.sut1.AddSynonym("aTwo", 5);
            this.sut1.AddSynonym("aThree");

            Assert.True(this.sut1.ContainsKeyword("aOne"));
            Assert.True(this.sut1.ContainsKeyword("aTwo"));
            Assert.True(this.sut1.ContainsKeyword("aThree"));
            Assert.False(this.sut1.ContainsKeyword("aFour"));

            CollectionAssert.AreEqual(this.sut1.GetSysnonymsAsStringList().ToArray(), new string[] { "aOne", "aTwo", "aThree" });

            StringKeywordWithRaiting a1 = new StringKeywordWithRaiting("aOne", 1);
            StringKeywordWithRaiting a2 = new StringKeywordWithRaiting("aTwo", 5);
            StringKeywordWithRaiting a3 = new StringKeywordWithRaiting("aThree", 1);

            var syns = this.sut1.GetSysnonyms();

            // HACK Order may be different. If rises asserts because of this refactor to proper collection wise order indifferent compare
            syns[0].PropertyValuesAreAlike(a1);
            syns[1].PropertyValuesAreAlike(a2);
            syns[2].PropertyValuesAreAlike(a3);
        }
 public void InMemorySuggester_GetSuggestions_checkThatSourceNameAndGuid()
 {
     var womanKWstr = "woman";
     var girlKW = new StringKeywordWithRaiting("girl");
     var beautyKW = new StringKeywordWithRaiting("beauty");
     var moquedStorage = this.kernel.GetMock<IinMemoryStorageStructure>();
     moquedStorage.Setup(s => s.GetSynonyms(womanKWstr)).Returns(new StringKeywordWithRaiting[] { girlKW, beautyKW });
     var moquedReader = this.kernel.GetMock<IToMemoryReader>();
     this.sut = new InMemorySuggester(moquedStorage.Object, moquedReader.Object, SmallFileWithTestDataFileName);
     var Woman_MoquedISemanticObject = this.kernel.GetMock<ISemanticObject>();
     Woman_MoquedISemanticObject.Setup(s => s.GetLiteralValue()).Returns(womanKWstr);
     var result = this.sut.GetSuggestions(Woman_MoquedISemanticObject.Object);
     Assert.That(result[0].SourceGuid, Is.EqualTo(this.sut.Guid));
     Assert.That(result[0].SourceName, Is.EqualTo(this.sut.Name));
 }
 public void SqlSuggester_GetSuggestions_checkThatSourceNameAndGuid()
 {
     var moquedStorage = this.kernel.GetMock<IinMemoryStorageStructure>();
     var someSynKW = new StringKeywordWithRaiting("someSyn");
     moquedStorage.Setup(s => s.GetSynonyms("oneWord")).Returns(new StringKeywordWithRaiting[] { someSynKW });
     var moquedReader = this.kernel.GetMock<IToMemoryReader>();
     this.sut = new InMemorySuggester(moquedStorage.Object, moquedReader.Object, SmallFileWithTestDataFileName);
     var oneWord_MoquedISemanticObject = this.kernel.GetMock<ISemanticObject>();
     oneWord_MoquedISemanticObject.Setup(s => s.GetLiteralValue()).Returns("oneWord");
     var result = this.sut.GetSuggestions(oneWord_MoquedISemanticObject.Object);
     Assert.That(result[0].SourceGuid, Is.EqualTo(this.sut.Guid));
     Assert.That(result[0].SourceName, Is.EqualTo(this.sut.Name));
 }
        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));
        }