public void KnowledgeTest_RilbertsTrade_AnswerReturned()
        {
            //What is Ribert's trade?
            //Rilbert is a Mason
            //ARRANGE
            var knowledge = new List <MemoryItem>();

            knowledge.AddRange(MemoryContentInitializer.CreatePersonsAndOccupationsForTest(new ItemLinkFactory()));

            var guineaPig = new Person("Guinea Pig", Gender.Male, Sex.Male, Orientation.Straight, Guid.NewGuid());

            var testCharacter = new global::RNPC.Core.Character(guineaPig, Archetype.None, knowledge)
            {
                FileController      = new DecisionTreeFileController(),
                DecisionTreeBuilder = new DecisionTreeBuilder(),
                KnowledgeRandomizer = new TestKnowledgeRandomization()
            };

            testCharacter.AddContentToLongTermMemory(knowledge);
            //ACT
            // ReSharper disable once InconsistentNaming
            var Rilbert = testCharacter.MyMemory.Persons.FindPersonByName("Rilbert");

            //ASSERT
            Assert.IsNotNull(Rilbert);

            var occupation = Rilbert.GetCurrentOccupation();

            Assert.IsNotNull(occupation);
            Assert.AreEqual("Mason", occupation.Name);
        }
        public void KnowledgeTest_AnyasBirthplace_AnswerReturned()
        {
            //Where was Anya born?
            //Anya was born in Rivia
            //ARRANGE
            var knowledge = new List <MemoryItem>();

            knowledge.AddRange(MemoryContentInitializer.CreatePersonsAndOccupationsForTest(new ItemLinkFactory()));

            var guineaPig = new Person("Guinea Pig", Gender.Male, Sex.Male, Orientation.Straight, Guid.NewGuid());

            var testCharacter = new global::RNPC.Core.Character(guineaPig, Archetype.None, knowledge)
            {
                FileController      = new DecisionTreeFileController(),
                DecisionTreeBuilder = new DecisionTreeBuilder(),
                KnowledgeRandomizer = new TestKnowledgeRandomization()
            };

            testCharacter.AddContentToLongTermMemory(knowledge);
            //ACT
            // ReSharper disable once InconsistentNaming
            var Anya = testCharacter.MyMemory.Persons.FindPersonByName("Anya");

            //ASSERT
            Assert.IsNotNull(Anya);

            // ReSharper disable once InconsistentNaming
            var Rivia = Anya.FindPlaceByPersonalTieType(PersonalTieType.BornIn);

            Assert.IsNotNull(Rivia);
            Assert.AreEqual("Rivia", Rivia.Name);
        }
        public void KnowledgeTest_AnyasBoyfriend_AnswerReturned()
        {
            //Who is Anya dating?
            //Anya and Henselt are dating
            //ARRANGE
            var knowledge = new List <MemoryItem>();

            knowledge.AddRange(MemoryContentInitializer.CreatePersonsAndOccupationsForTest(new ItemLinkFactory()));

            var guineaPig = new Person("Guinea Pig", Gender.Male, Sex.Male, Orientation.Straight, Guid.NewGuid());

            var testCharacter = new global::RNPC.Core.Character(guineaPig, Archetype.None)
            {
                FileController      = new DecisionTreeFileController(),
                DecisionTreeBuilder = new DecisionTreeBuilder(),
                KnowledgeRandomizer = new TestKnowledgeRandomization()
            };

            testCharacter.AddContentToLongTermMemory(knowledge);
            //ACT
            // ReSharper disable once InconsistentNaming
            var Anya = testCharacter.MyMemory.Persons.FindPersonByName("Anya");

            //ASSERT
            Assert.IsNotNull(Anya);

            // ReSharper disable once InconsistentNaming
            var relationships = Anya.FindRelationshipsByType(PersonalRelationshipType.Romantic);

            Assert.IsNotNull(relationships);
            Assert.IsTrue(relationships.Count == 1);

            var boyfriend = relationships[0].RelatedPerson;

            Assert.IsNotNull(boyfriend);
            Assert.AreEqual("Hanselt", boyfriend.Name);
        }