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 }); }
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. }
public void AddUser(string name) { var user = GetUser(name); if (user == null) { user = new User {Name = name}; _Users.Add(user); } }
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; }
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); }
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 }); }
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)); }
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); }
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)); }
public void AddMessage(User author, string text) { _Messages.Add(new Message { Author = author, Text = text, Time = _Clock.CurrentDateAndTime }); }
public IList<User> GetSubscribedUsersOf(User follower) { var followees = _Subscriptions.Where(a => a.Follower.Equals(follower)).Select(a => a.Followee).ToList(); return followees; }