Ejemplo n.º 1
0
        public void MapPoemToPoemInfodata()
        {
            Poem poem = new ClassicalPoem()
                {
                    Id = 1,
                    Title = "This is a sample title for poem",
                    Description = "This is a sample description for poem",
                    CurrentGm = 1393021216,
                    CurrentGameMasterUserProfile = new UserProfile() { Id = 1393021216, Name = "Sergiu Ciumac" },
                    StartedAt = DateTime.Now
                };

            var mapResult = AutoMapper.Mapper.Map<Poem, PoemInfoData>(poem);

            Assert.AreEqual(poem.Title, mapResult.Title);
            Assert.AreEqual(poem.Description, mapResult.Description);
            Assert.AreEqual(poem.StartedAt.ToFacebookRepresentation(), mapResult.LastUpdate);
            Assert.AreEqual(poem.StartedAt.TimeAgo(), mapResult.LastUpdateAgo);
            Assert.AreEqual("/poem/1", mapResult.PoemLink);
            Assert.AreEqual(poem.CurrentGm, mapResult.GameMasterId);
            Assert.AreEqual(poem.CurrentGameMasterUserProfile.Name, mapResult.GameMasterName);
            Assert.AreEqual(poem.StartedAt.ToFacebookRepresentation(), mapResult.StartedAt);
        }
        public void CreateNewPoemVerseSuccessfulWithGameMasterChanged()
        {
            const int PoemId = 123456;
            const long AuthorProfileId = 123;
            const long VerseId = 1234567;

            Poem poem = new ClassicalPoem
                {
                    Id = PoemId,
                    Players =
                        new Collection<Player>(
                            new[] { new Player { UserProfileId = AuthorProfileId }, new Player { UserProfileId = 1 } }),
                    CurrentGm = AuthorProfileId,
                    CurrentGameMasterUserProfile = new UserProfile { Id = AuthorProfileId }
                };

            poemService.Setup(service => service.GetPoemById(PoemId)).Returns(poem);
            Verse verse = new Verse
                {
                    Id = VerseId,
                    PoemId = PoemId,
                    VerseType = new CandidateVerseType(),
                    AuthorProfileId = AuthorProfileId + 1,
                    Text = "This is a verse to be updated"
                };
            verseService.Setup(service => service.GetById(VerseId)).Returns(verse);
            verseService.Setup(service => service.UpdateVerse(verse, It.IsAny<PoemVerseType>()));
            verseService.Setup(service => service.GetVerseType<PoemVerseType>()).Returns(new PoemVerseType());
            poemService.Setup(service => service.Update(poem)).Callback(
                (Poem updated) => Assert.AreEqual(AuthorProfileId + 1, updated.CurrentGm));
            signalizerFactory.Setup(factory => factory.GetSignal<PoemVerseAddedSignal<Raw>>()).Returns(
                new PoemVerseAddedSignal<Raw>(logger.Object));
            signalizerFactory.Setup(factory => factory.GetSignal<PoemGameMasterChangedSignal<Raw>>()).Returns(
                new PoemGameMasterChangedSignal<Raw>(logger.Object));

            VerseEngineeringUser requestUser = new VerseEngineeringUser(
                AuthorProfileId, "TestUser", "TestFacebookAccessToken");
            VerseData verseData =
                poemVersesController.PostVerseForPoem(new AddVerseModel { Id = VerseId, PoemId = PoemId }, requestUser);

            Assert.AreEqual(VerseId, verseData.Id);
            Assert.AreEqual("This is a verse to be updated", verseData.Text);
            Assert.AreEqual(PoemId, verseData.PoemId);
        }