public void WhenFindById_IfItemExists_ShouldReturn()
        {
            // Arrange
            var itemId  = Guid.NewGuid();
            var factory = new ReminderWebApiFactory(
                CreateReminderItem(id: itemId)
                );
            var storage = factory.CreateReminderClient();

            // Act
            var actual = storage.FindById(itemId);

            // Assert
            Assert.AreEqual(itemId, actual.Id);
        }
        public void WhenFindBy_IfStatusAndDatetimeSpecified_ShouldReturnFilteredResults(
            ReminderItemStatus status,
            string datetimeUtc,
            uint pageNumber,
            uint pageSize,
            int expectedTotal,
            int expectedItemsCount)
        {
            // Arrange
            var factory = new ReminderWebApiFactory(
                CreateReminderItem(status: ReminderItemStatus.Created, datetimeUtc: DateTimeOffset.UtcNow),
                CreateReminderItem(status: ReminderItemStatus.Created, datetimeUtc: DateTimeOffset.UtcNow.AddHours(1)),
                CreateReminderItem(status: ReminderItemStatus.Ready, datetimeUtc: DateTimeOffset.UtcNow),
                CreateReminderItem(status: ReminderItemStatus.Ready, datetimeUtc: DateTimeOffset.UtcNow.AddHours(1)),
                CreateReminderItem(status: ReminderItemStatus.Sent, datetimeUtc: DateTimeOffset.UtcNow.AddHours(-1)),
                CreateReminderItem(status: ReminderItemStatus.Failed, datetimeUtc: DateTimeOffset.UtcNow.AddHours(-1))
                );
            var storage = factory.CreateReminderClient();

            // Act
            var filter = new ReminderItemFilter(
                page: new PageInfo(pageNumber, pageSize),
                status: status,
                datetimeUtc: (datetimeUtc == "now") ? DateTimeOffset.UtcNow : default