public void ReturnsUsersMostRecentReblogIfPartnerIdentifierProvidedAndTheirTurn()
                {
                    // Arrange
                    var date         = DateTime.Now;
                    var yesterday    = date.AddDays(-1);
                    var threeDaysAgo = date.AddDays(-3);
                    var fiveDaysAgo  = date.AddDays(-5);
                    var basePost     = new BasePost
                    {
                        Notes = new List <BaseNote>
                        {
                            new BaseNote {
                                PostId = "1", Type = NoteType.Reblog, Timestamp = threeDaysAgo, BlogName = "blackjackkent"
                            },
                            new BaseNote {
                                PostId = "2", Type = NoteType.Reblog, Timestamp = yesterday, BlogName = "someOtherBlog"
                            },
                            new BaseNote {
                                PostId = "3", Type = NoteType.Reblog, Timestamp = fiveDaysAgo, BlogName = "partnerblog"
                            }
                        }
                    };
                    var adapter = new PostAdapter(basePost);

                    // Act
                    var note = adapter.GetMostRecentRelevantNote("blackjackkent", "partnerblog");

                    // Assert
                    note.Should().NotBe(null);
                    note.PostId.Should().Be("1");
                    note.Timestamp.Should().Be(threeDaysAgo);
                }
                public void IgnoresBlogNameCase()
                {
                    // Arrange
                    var date         = DateTime.Now;
                    var yesterday    = date.AddDays(-1);
                    var threeDaysAgo = date.AddDays(-3);
                    var fiveDaysAgo  = date.AddDays(-5);
                    var basePost     = new BasePost
                    {
                        Notes = new List <BaseNote>
                        {
                            new BaseNote {
                                PostId = "1", Type = NoteType.Reblog, Timestamp = threeDaysAgo, BlogName = "blackjackkent"
                            },
                            new BaseNote {
                                PostId = "2", Type = NoteType.Reblog, Timestamp = yesterday, BlogName = "partnerBlog"
                            },
                            new BaseNote {
                                PostId = "3", Type = NoteType.Reblog, Timestamp = fiveDaysAgo, BlogName = "partnerblog"
                            }
                        }
                    };
                    var adapter = new PostAdapter(basePost);

                    // Act
                    var note = adapter.GetMostRecentRelevantNote("blackjackkent", "partnerblog");

                    // Assert
                    note.Should().NotBe(null);
                    note.PostId.Should().Be("2");
                    note.Timestamp.Should().Be(yesterday);
                }
                public void ReturnsNullIfNotesContainsNoReblogs()
                {
                    // Arrange
                    var basePost = new BasePost
                    {
                        Notes = new List <BaseNote>
                        {
                            new BaseNote {
                                Type = NoteType.Like
                            },
                            new BaseNote {
                                Type = NoteType.Reply
                            },
                            new BaseNote {
                                Type = NoteType.Posted
                            }
                        }
                    };
                    var adapter = new PostAdapter(basePost);

                    // Act
                    var note = adapter.GetMostRecentRelevantNote("blackjackkent", "mypartner");

                    // Assert
                    note.Should().BeNull();
                }
                public void ReturnsNullIfNotesAreEmpty()
                {
                    // Arrange
                    var basePost = new BasePost
                    {
                        Notes = new List <BaseNote>()
                    };
                    var adapter = new PostAdapter(basePost);

                    // Act
                    var note = adapter.GetMostRecentRelevantNote("blackjackkent", "mypartner");

                    // Assert
                    note.Should().BeNull();
                }