Exemplo n.º 1
0
        public void GetMessagesOnlyForSubscriptions()
        {
            _MessageRepository = new MessageRepository(_Clock.Object);
            var alice = new User { Name = "Alice" };
            var bob = new User { Name = "Bob" };
            var charlie = new User { Name = "Charlie" };
            _Clock.Setup(a => a.CurrentDateAndTime).Returns(_CNow);
            _MessageRepository.AddMessage(alice, "I love the weather today");
            _Clock.Setup(a => a.CurrentDateAndTime).Returns(_CNow);
            _MessageRepository.AddMessage(bob, "Damn! We lost!");
            _Clock.Setup(a => a.CurrentDateAndTime).Returns(_CNow);
            _MessageRepository.AddMessage(charlie, "I’m in New York today! Anyone want to have a coffee?");

            var wall = _MessageRepository.MessagesOfSubscribedUsers(new List<User> { charlie, alice });

            Assert.AreEqual(wall.Count, 2);
            Assert.AreEqual(
                wall[0],
                new Message { Author = alice,
                    Text = "I love the weather today",
                    Time = _CNow });
            Assert.AreEqual(
                wall[1],
                new Message
                {
                    Author = charlie,
                    Text = "I’m in New York today! Anyone want to have a coffee?",
                    Time = _CNow
                });
        }
Exemplo n.º 2
0
 public void AddSubscriptionIfNoneParticipantIsNull(User follower, User followee)
 {
     if (follower != null && followee != null)
     {
         _Subscriptions.Add(new Subscription{Followee = followee, Follower = follower});
     }
     //NOTE: checking for follower duplicates is not a request therefore is not implemented.
 }
Exemplo n.º 3
0
 public void AddUser(string name)
 {
     var user = GetUser(name);
     if (user == null)
     {
         user = new User {Name = name};
         _Users.Add(user);
     }
 }
Exemplo n.º 4
0
        private List<Message> CreateDummyMessages()
        {
            var bob = new User { Name = "Bob" };

            var messages = new List<Message>
            {
                new Message {Author = bob, Text = "Damn! We lost!", Time = _Now.AddMinutes(-2)},
                new Message {Author = bob, Text = "Good game though.", Time = _Now.AddMinutes(-1)}
            };
            return messages;
        }
Exemplo n.º 5
0
        public void NotCreateAndStoreASubscriptionIfAnyParticipantIsNull()
        {
            _SubscriptionRepository = new SubscriptionRepository();
            var user = new User { Name = "Alice" };

            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(user, null);
            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(null, user);
            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(null, null);

            var allSubscription = _SubscriptionRepository.AllSubscription();
            Assert.AreEqual(allSubscription.Count, 0);
        }
Exemplo n.º 6
0
        public void CreateAndStoreASubscription()
        {
            _SubscriptionRepository = new SubscriptionRepository();
            var follower = new User { Name = "Charlie" };
            var followee = new User { Name = "Alice" };

            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(follower, followee);

            var allSubscription = _SubscriptionRepository.AllSubscription();
            Assert.AreEqual(allSubscription.Count, 1);
            Assert.AreEqual(allSubscription[0], new Subscription { Followee = followee, Follower = follower });
        }
Exemplo n.º 7
0
        public void ShowMessagesOfSubscribedUsers()
        {
            IList<Message> messages = new List<Message>();
            var user = new User { Name = "Charlie" };
            var subscriptions = new List<User> { user };
            _UserRepository.Setup(a => a.GetUser(user.Name)).Returns(user);
            _SubscriptionRepository.Setup(a => a.GetSubscribedUsersOf(user)).Returns(subscriptions);
            _MessageRepository.Setup(a => a.MessagesOfSubscribedUsers(subscriptions)).Returns(messages);
            _ShowWallCommand.UserName = user.Name;

            _ShowWallCommand.Execute();

            _MessagePrinter.Verify(a => a.PrintWall(messages));
        }
Exemplo n.º 8
0
        public void RetrieveSubscribedUsers()
        {
            _SubscriptionRepository = new SubscriptionRepository();
            var charlie = new User { Name = "Charlie" };
            var alice = new User { Name = "Alice" };
            var bob = new User { Name = "Bob" };

            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(charlie, alice);
            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(charlie, bob);
            _SubscriptionRepository.AddSubscriptionIfNoneParticipantIsNull(bob, charlie);

            IList<User> followeesOfCharlie = _SubscriptionRepository.GetSubscribedUsersOf(charlie);
            Assert.AreEqual(followeesOfCharlie.Count, 2);
            IList<User> followeesOfBob = _SubscriptionRepository.GetSubscribedUsersOf(bob);
            Assert.AreEqual(followeesOfBob.Count, 1);
        }
Exemplo n.º 9
0
        public void CreateAndStoreAMessage()
        {
            _MessageRepository = new MessageRepository(_Clock.Object);
            _Clock.Setup(a => a.CurrentDateAndTime).Returns(_CNow);
            var alice = new User {Name = "Alice"};
            _MessageRepository.AddMessage(alice, "I love the weather today");

            var messagesOfUser = _MessageRepository.AllMessages();
            Assert.AreEqual(messagesOfUser.Count, 1);
            Assert.AreEqual(
                messagesOfUser[0],
                new Message
                {
                    Author = alice,
                    Text = "I love the weather today",
                    Time = _CNow
                });
        }
        public void CreateSubscription()
        {
            _UserRepository = new Mock<IUserRepository>();
            _SubscriptionRepository = new Mock<ISubscriptionRepository>();
            var charlie = new User { Name = "Charlie" };
            var alice = new User { Name = "Alice" };

            _CreateSubscriptionCommand = new CreateSubscriptionCommand
            {
                UserRepository = _UserRepository.Object,
                SubscriptionRepository = _SubscriptionRepository.Object,
                FollowerName = charlie.Name,
                FolloweeName = alice.Name
            };

            _UserRepository.Setup(a => a.GetUser(charlie.Name)).Returns(charlie);
            _UserRepository.Setup(a => a.GetUser(alice.Name)).Returns(alice);
            _CreateSubscriptionCommand.Execute();

            _SubscriptionRepository.Verify(a => a.AddSubscriptionIfNoneParticipantIsNull(charlie, alice));
        }
Exemplo n.º 11
0
 public void AddMessage(User author, string text)
 {
     _Messages.Add(new Message { Author = author, Text = text, Time = _Clock.CurrentDateAndTime });
 }
Exemplo n.º 12
0
 public IList<User> GetSubscribedUsersOf(User follower)
 {
     var followees = _Subscriptions.Where(a => a.Follower.Equals(follower)).Select(a => a.Followee).ToList();
     return followees;
 }