public void Like(Guid messageId, User user) { var likeDocument = new LikeDocument { UserName = user.Name, CreateDate = DateTime.UtcNow }; //TODO: Здесь нужно реализовать вставку одобрения в базу }
public void Dislike_ExistingMessage_ShouldRemoveLike() { var user = fixture.Create <User>(); var existingLike = new LikeDocument { UserName = user.Name, CreateDate = DateTime.UtcNow }; var messageDocument = fixture.Build <MessageDocument>().With(d => d.Likes, new[] { existingLike }).Create(); messagesCollection.Save(messageDocument); sut.Dislike(messageDocument.Id, user); var actual = messagesCollection.FindOneAs <MessageDocument>(Query <MessageDocument> .EQ(d => d.Id, messageDocument.Id)); Assert.That(actual.Likes, Is.Empty); }
public void Dislike_SameUserOtherMessage_ShouldNotRemoveLike() { var user = fixture.Create <User>(); var like = new LikeDocument { UserName = user.Name, CreateDate = DateTime.UtcNow }; var messageDocument = fixture.Build <MessageDocument>().With(d => d.Likes, new[] { like }).Create(); messagesCollection.Save(messageDocument); sut.Dislike(fixture.Create <Guid>(), user); var actual = messagesCollection.FindOneAs <MessageDocument>(Query <MessageDocument> .EQ(d => d.Id, messageDocument.Id)); Assert.That(actual.Likes, Has.Some.Matches <LikeDocument>(d => d.UserName == user.Name)); }
public void Like_LikedMessage_ShouldNotAddLikeDocument() { var user = fixture.Create <User>(); var like = new LikeDocument { UserName = user.Name, CreateDate = DateTime.UtcNow }; var messageDocument = fixture.Build <MessageDocument>().With(d => d.Likes, new[] { like }).Create(); messagesCollection.Insert(messageDocument); sut.Like(messageDocument.Id, user); var actual = messagesCollection.FindOneAs <MessageDocument>(Query <MessageDocument> .EQ(d => d.Id, messageDocument.Id)); Assert.That(actual.Likes.ToArray(), Has.Length.EqualTo(1)); }