コード例 #1
0
        public void WhenItemIsNull_ThenThrowsArgumentNullException()
        {
            var storage = new ReminderItemStorage();

            Assert.Catch <ArgumentNullException>(() =>
                                                 storage.Add(null)
                                                 );
        }
コード例 #2
0
        public void ShouldThrowArgumentNullException_WhenUpdateItemIsNull()
        {
            var storage = new ReminderItemStorage();

            Assert.Catch <ArgumentNullException>(() =>
                                                 storage.Update(null)
                                                 );
        }
コード例 #3
0
 public void WhenUpdateItemDoesnExist_ThenThrowsArgumentException()
 {
     var storage  = new ReminderItemStorage();
     var reminder = new ReminderItem(Guid.NewGuid()
                                     , "Test1"
                                     , "Reminder1"
                                     , DateTimeOffset.UtcNow
                                     , "UserName");
     var exeption = Assert.Catch <ArgumentException>(() => storage.Update(reminder));
 }
コード例 #4
0
        public void WhenItemExists_ThenThrowsArgumentException()
        {
            var item    = CreateReminderItem();
            var storage = new ReminderItemStorage(item);

            var exception = Assert.Catch <ArgumentException>(() =>
                                                             storage.Add(item)
                                                             );

            Assert.IsTrue(exception.Message.Contains(item.Title));
        }
コード例 #5
0
        public void GivenItemNotExists_WhenFind_ThenThrowArgumentException()
        {
            var storage = new ReminderItemStorage();
            var id      = Guid.NewGuid();

            var exception = Assert.Catch <ArgumentException>(() =>
                                                             storage.Find(id)
                                                             );

            StringAssert.Contains(id.ToString("N"), exception.Message);
        }
コード例 #6
0
        public void GivenItemExists_WhenFind_ThenShouldReturnIt()
        {
            var item    = CreateReminderItem();
            var storage = new ReminderItemStorage(item);

            var result = storage.Find(item.Id);

            Assert.AreEqual(item.Id, result.Id);
            Assert.AreEqual(item.Title, result.Title);
            Assert.AreEqual(item.Message, result.Message);
        }
コード例 #7
0
        public void GivenReadyItems_WhenFindByReadyStatus_ShouldReturnElements()
        {
            var storage = new ReminderItemStorage(
                CreateReminderItem(datetime: DateTimeOffset.UtcNow.AddMinutes(-1), status: ReminderItemStatus.Ready));

            var result = storage.FindBy(
                ReminderItemFilter.ByStatus(ReminderItemStatus.Ready)
                );

            Assert.IsNotEmpty(result);
        }
コード例 #8
0
        public void WhenItemNotExists_ThenCanFindById()
        {
            var storage = new ReminderItemStorage();
            var item    = CreateReminderItem();

            storage.Add(item);
            var result = storage.Find(item.Id);

            Assert.NotNull(result);
            Assert.AreEqual(item.Id, result.Id);
            Assert.AreEqual(item.Message, result.Message);
        }
コード例 #9
0
        public void ShouldSaveUpdatedItem_WhenItemExists()
        {
            var item    = CreateReminderItem();
            var storage = new ReminderItemStorage(item);

            item.Message = "Another message";
            storage.Update(item);

            var result = storage.Find(item.Id);

            Assert.AreEqual("Another message", result.Message);
        }
コード例 #10
0
        public void GivenCreatedItem_WhenFrindByReadyStatus_ShouldReturnEmpty()
        {
            var storage  = new ReminderItemStorage();
            var Reminder = new[]
            { new ReminderItem(Guid.NewGuid(), "Title1", "Message1", DateTimeOffset.UtcNow, "User_id1"),
              new ReminderItem(Guid.NewGuid(), "Title2", "Message2", DateTimeOffset.UtcNow.AddSeconds(-20), "User_id2"),
              new ReminderItem(Guid.NewGuid(), "Title3", "Message3", DateTimeOffset.UtcNow.AddSeconds(+20), "User_id3") };

            storage.Add(Reminder);
            var result = storage.FindBy(ReminderItemFilter.ByStatus(ReminderItemStatus.Ready));

            Assert.IsEmpty(result);
        }
コード例 #11
0
        public void ShouldThrowArgumentException_WhenUpdateItemNotExists()
        {
            var storage = new ReminderItemStorage();
            var id      = Guid.NewGuid();

            var exception = Assert.Catch <ArgumentException>(() =>
                                                             storage.Update(
                                                                 CreateReminderItem(id)
                                                                 )
                                                             );

            Assert.IsTrue(exception.Message.Contains(id.ToString("N")));
        }
コード例 #12
0
        public void GivenCreatedItems_WhenFindFromNow_ShouldReturnMatchingElements()
        {
            var storage = new ReminderItemStorage(
                CreateReminderItem(datetime: DateTimeOffset.UtcNow.AddSeconds(20), status: ReminderItemStatus.Created),
                CreateReminderItem(datetime: DateTimeOffset.UtcNow.AddMinutes(-1), status: ReminderItemStatus.Created),
                CreateReminderItem(datetime: DateTimeOffset.UtcNow.AddMinutes(1), status: ReminderItemStatus.Created)
                );

            var result = storage.FindBy(ReminderItemFilter.FromNow());

            Assert.IsNotEmpty(result);
            Assert.AreEqual(1, result.Length);
        }
コード例 #13
0
        public void WhenItemNotExists_ThenCanFindById()
        {
            var storage  = new ReminderItemStorage();
            var reminder = new ReminderItem[] { new ReminderItem(Guid.NewGuid()
                                                                 , "Test1"
                                                                 , "Reminder1"
                                                                 , DateTimeOffset.UtcNow
                                                                 , "UserName") };

            foreach (var items in reminder)
            {
                var exeption = Assert.Catch <KeyNotFoundException>(() => storage.Find(items.Id));
            }
        }
コード例 #14
0
        public void GivenCreatedItem_WhenFrindFromNow_ShouldReturnMatchengElements()
        {
            var storage  = new ReminderItemStorage();
            var Reminder = new[]
            { new ReminderItem(Guid.NewGuid(), "Title1", "Message1", DateTimeOffset.UtcNow.AddSeconds(20), "User_id1"),
              new ReminderItem(Guid.NewGuid(), "Title2", "Message2", DateTimeOffset.UtcNow.AddSeconds(-60), "User_id2"),
              new ReminderItem(Guid.NewGuid(), "Title3", "Message3", DateTimeOffset.UtcNow.AddSeconds(+60), "User_id3") };

            storage.Add(Reminder);
            var result = storage.FindBy(ReminderItemFilter.FromNow());

            Assert.IsNotEmpty(result);
            Assert.AreEqual(1, result.Length);
            Assert.AreEqual("Message2", result[0].Message);
        }
コード例 #15
0
        public void WhenItemNotExist_ThenCanFindById()
        {
            var storage = new ReminderItemStorage();
            var item    = new ReminderItem(
                Guid.NewGuid(),
                "Header",
                "Message",
                DateTimeOffset.Now,
                "UserID");

            storage.Add(null);
            var result = storage.Find(item.Id);

            Assert.NotNull(result);
            Assert.AreEqual(item.Id, result.Id);
            Assert.AreEqual(item.Massege, result.Massege);
        }
コード例 #16
0
        public void WhenItemExists_ThenThrowsArgumentException()
        {
            var storage  = new ReminderItemStorage();
            var reminder = new ReminderItem[] { new ReminderItem(Guid.NewGuid()
                                                                 , "Test1"
                                                                 , "Reminder1"
                                                                 , DateTimeOffset.UtcNow
                                                                 , "UserName") };

            storage.Add(reminder);
            foreach (var items in reminder)
            {
                var exeption = Assert.Catch <ArgumentException>(() => storage.Add(reminder));
                Assert.IsTrue(exeption.Message.Contains(items.Title));
                Assert.IsTrue(exeption.Message.Contains(items.Id.ToString()));
            }
        }
コード例 #17
0
        public void WhenItemExists_ThenThrowsArgumentException()
        {
            var storage = new ReminderItemStorage();
            var item    = new ReminderItem(
                Guid.NewGuid(),
                "Header",
                "Message",
                DateTimeOffset.Now,
                "UserId");

            storage.Add(item);

            var exception = Assert.Catch <ArgumentException>(() =>
                                                             storage.Add(item)
                                                             );

            Assert.IsTrue(exception.Message.Contains(item.Title));
        }
コード例 #18
0
        public void Test1()
        {
            var factory = new WebApplicationFactory <Startup>();
            var storage = new ReminderItemStorage(factory.CreateClient());
            var items   = new ReminderItem[] { new ReminderItem(
                                                   Guid.NewGuid()
                                                   , "Title"
                                                   , "Message"
                                                   , DateTimeOffset.UtcNow
                                                   , "Users"
                                                   ) };

            storage.Add(items);
            foreach (var item in items)
            {
                var result = storage.Find(item.Id);
                Assert.AreEqual(item.Message, result.Message);
            }
        }
コード例 #19
0
        public void GivenItemWithCreatedStatusAndDatetime_WhenTimersExecutesAndReceiverFailed_ThenStatusChangedToFailed()
        {
            // Arrange
            var storage = new ReminderItemStorage(
                CreateReminderItem(datetime: DateTimeOffset.UtcNow.AddMinutes(-1), status: ReminderItemStatus.Created)
                );

            using var scheduler = CreateScheduler(storage, FailedSender);

            // Act
            scheduler.Run();
            WaitTimers();

            // Assert
            var items = storage.FindBy(
                ReminderItemFilter.ByStatus(ReminderItemStatus.Failed)
                );

            Assert.IsNotEmpty(items);
        }
コード例 #20
0
        public void WhenUpdateItem_ThenCallFind()
        {
            var reminder = new ReminderItem(Guid.NewGuid()
                                            , "Test1"
                                            , "Reminder1"
                                            , DateTimeOffset.UtcNow
                                            , "UserName1");
            var reminder2 = new ReminderItem(Guid.NewGuid()
                                             , "Test2"
                                             , "Reminder2"
                                             , DateTimeOffset.UtcNow.AddMinutes(-1)
                                             , "UserName2");

            var storage = new ReminderItemStorage(new[] { reminder, reminder2 });

            reminder.Message = "Message2205";
            var exeption = Assert.Catch <ArgumentException>(() => storage.Update(reminder));

            Console.WriteLine(reminder.Message);
            Assert.AreEqual("Message2205", reminder.Message);

            // Assert.AreEqual();
        }
コード例 #21
0
        static void Main()
        {
            var storage = new ReminderItemStorage();

            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message one", DateTimeOffset.Now.AddSeconds(20), "Artem"));
            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message two", DateTimeOffset.Now.AddMinutes(-1), "Artem"));
            storage.Add(
                new ReminderItem(Guid.NewGuid(), "header", "message three", DateTimeOffset.Now.AddMinutes(1), "Artem"));

            using var scheduler = new ReminderScheduler(
                      storage,
                      new ReminderSchedulerSettings(
                          readyTimerInterval: TimeSpan.FromSeconds(3),
                          sendTimerInterval: TimeSpan.FromSeconds(5))
                      );
            scheduler.ReminderSent += (sender, args) =>
                                      Console.WriteLine($"Reminder for: {args.DateTime} with message: {args.Message}");
            scheduler.Run();

            Console.WriteLine("Scheduler working");
            Console.ReadKey();
        }
コード例 #22
0
ファイル: UnitTest1.cs プロジェクト: WMSLL/CS-Course2
        public void test2()
        {
            var reminder = new ReminderItem[] { new ReminderItem(Guid.NewGuid()
                                                                 , "Test1"
                                                                 , "Reminder1"
                                                                 , DateTimeOffset.UtcNow.AddMinutes(-1)
                                                                 , "UserName") };
            var storage = new ReminderItemStorage(reminder);

            using var cheduler = new ReminderScheduler(
                      storage,
                      new ReminderItemReceiver(),
                      new ReminderItemSender(),
                      new ReminderSchedulerSettings(TimeSpan.FromMilliseconds(300),
                                                    TimeSpan.FromMilliseconds(500))
                      );

            cheduler.Run();
            Thread.Sleep(TimeSpan.FromMilliseconds(800));
            var item = storage.FindBy(ReminderItemFilter.ByStatus(ReminderItemStatus.Filed));

            // goto нет sleep
            Assert.IsNotNull(item);
        }
コード例 #23
0
ファイル: UnitTest1.cs プロジェクト: VladBoulanov/New-git
        public void Test1()
        {
            var storage = new ReminderItemStorage();

            storage.Add(null);
        }
コード例 #24
0
ファイル: UnitTest1.cs プロジェクト: VladBoulanov/New-git
        public void Test2()
        {
            var storage = new ReminderItemStorage();

            storage.Find.Assert.NotEmpty(item);
        }
コード例 #25
0
ファイル: UnitTest1.cs プロジェクト: VladBoulanov/New-git
        public void Test3()
        {
            var storage = new ReminderItemStorage();

            storage.FindByDateTime.Assert.NotEmpty(key);
        }
コード例 #26
0
 public void WhenDeleteItemDoesnExist_ThenThrowsKeyNotFoundException()
 {
     var storage  = new ReminderItemStorage();
     var newGuid  = Guid.NewGuid();
     var exeption = Assert.Catch <KeyNotFoundException>(() => storage.Delete(newGuid));
 }
コード例 #27
0
 public void Set()
 {
     storage = new ReminderItemStorage();
 }