Exemplo n.º 1
0
        public void ShouldCreate_Event_When_EventIsValid()
        {
            //set up
            var eventToCreate = new Event
            {
                EventId             = Guid.NewGuid(),
                EventType           = "ToDoItemAdded",
                AggregateId         = Guid.Parse(_testUser.Id),
                AggregateName       = "ToDoItem",
                EventPayLoad        = "Json String as Event Payload",
                EventCreateDateTime = DateTime.Now
            };

            var mockDatabaseContext = new ToDoDbContextBuilder().UseInMemorySqlite().Build();

            this._eventStoreService = new EventStoreService(mockDatabaseContext);

            // test
            var @event = this._eventStoreService.CreateEvent(eventToCreate).Result;

            // assert
            Assert.IsNotNull(@event);
            Assert.AreEqual(eventToCreate.EventId, @event.EventId);
            Assert.AreEqual(eventToCreate.EventType, @event.EventType);
            Assert.AreEqual(eventToCreate.AggregateId, @event.AggregateId);
            Assert.AreEqual(eventToCreate.AggregateName, @event.AggregateName);
            Assert.AreEqual(eventToCreate.EventPayLoad, @event.EventPayLoad);
            Assert.AreEqual(eventToCreate.EventCreateDateTime, @event.EventCreateDateTime);
        }
Exemplo n.º 2
0
        public void ShouldReturn_AllEvents_When_EventsExist()
        {
            //set up
            Guid eventId = Guid.NewGuid();

            var @event = new Event
            {
                EventId             = eventId,
                EventType           = "ToDoItemAdded",
                AggregateId         = Guid.Parse(_testUser.Id),
                AggregateName       = "ToDoItem",
                EventPayLoad        = "Json String as Event Payload",
                EventCreateDateTime = DateTime.Now
            };

            var mockDatabaseContext = new ToDoDbContextBuilder().UseInMemorySqlite().WithEvent(@event.EventId,
                                                                                               @event.EventType, @event.AggregateId, @event.AggregateName, @event.EventPayLoad,
                                                                                               @event.EventCreateDateTime).Build();

            this._eventStoreService = new EventStoreService(mockDatabaseContext);

            // test
            var result = this._eventStoreService.GetEvents().Result;

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);

            Assert.AreEqual(@event.EventType, result[0].EventType);
            Assert.AreEqual(@event.AggregateId, result[0].AggregateId);
            Assert.AreEqual(@event.AggregateName, result[0].AggregateName);
            Assert.AreEqual(@event.EventPayLoad, result[0].EventPayLoad);
            Assert.AreEqual(@event.EventCreateDateTime, result[0].EventCreateDateTime);
        }
Exemplo n.º 3
0
        public void ShouldReturn_Null_When_NoToDoItemsByToDoStatusFound()
        {
            //set up
            var toDoItem = new ToDoItem
            {
                ItemId     = 1,
                ItemTitle  = "Test To Do Item",
                ItemStatus = ToDoStatuses.InProgress,
                ItemDueOn  = DateTimeOffset.Now.AddHours(1),
                UserId     = Guid.Parse(_testUser.Id)
            };

            var mockDatabaseContext = new ToDoDbContextBuilder().UseInMemorySqlite()
                                      .WithToDoItem(toDoItem.ItemId, toDoItem.ItemTitle, toDoItem.ItemStatus, toDoItem.ItemDueOn, toDoItem.UserId).Build();

            var messageSender = new Mock <IMessageSender>();

            new Mock <IMessageSender>().Setup(i => i.SendMessage(It.IsAny <string>())).Returns(It.IsAny <Task>());

            this._toDoService = new ToDoService(mockDatabaseContext, messageSender.Object);

            // test
            var result = this._toDoService.GetItemsByStatus(_testUser, It.IsAny <ToDoStatuses>()).Result;

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.Count);

            // messageSender.Verify(mock => mock.SendMessage(It.IsAny<string>()), Times.Never);
        }
Exemplo n.º 4
0
        public void ShouldPatch_ToDoItemStatus_When_ToDoItemIsFoundForStatusPatch()
        {
            // set up
            ToDoStatuses itemStatusToPatch = ToDoStatuses.InProgress;

            var toDoItemOne = new ToDoItem
            {
                ItemId     = 1,
                ItemTitle  = "Test To Do Item One",
                ItemStatus = ToDoStatuses.ToDo,
                ItemDueOn  = DateTimeOffset.Now.AddHours(1),
                UserId     = Guid.Parse(_testUser.Id)
            };

            var mockDatabaseContext = new ToDoDbContextBuilder().UseInMemorySqlite()
                                      .WithToDoItem(toDoItemOne.ItemId, toDoItemOne.ItemTitle, toDoItemOne.ItemStatus, toDoItemOne.ItemDueOn, toDoItemOne.UserId)
                                      .Build();

            var messageSender = new Mock <IMessageSender>();

            new Mock <IMessageSender>().Setup(i => i.SendMessage(It.IsAny <string>())).Returns(It.IsAny <Task>());

            this._toDoService = new ToDoService(mockDatabaseContext, messageSender.Object);

            // test
            var toDoItem = this._toDoService.PatchItemStatus(_testUser, toDoItemOne.ItemId, itemStatusToPatch).Result;

            // assert
            Assert.IsNotNull(toDoItem);

            Assert.AreEqual(itemStatusToPatch, toDoItem.ItemStatus);

            // messageSender.Verify(mock => mock.SendMessage(It.IsAny<string>()), Times.Once);
        }
Exemplo n.º 5
0
        public void ShouldDelete_ToDoItem_When_ToDoItemIsFoundForDelete()
        {
            // set up
            var toDoItemOne = new ToDoItem
            {
                ItemId     = 1,
                ItemTitle  = "Test To Do Item One",
                ItemStatus = ToDoStatuses.ToDo,
                ItemDueOn  = DateTimeOffset.Now.AddHours(1),
                UserId     = Guid.Parse(_testUser.Id)
            };

            var toDoItemTwo = new ToDoItem
            {
                ItemId     = 2,
                ItemTitle  = "Test To Do Item Two",
                ItemStatus = ToDoStatuses.InProgress,
                ItemDueOn  = DateTimeOffset.Now.AddHours(2),
                UserId     = Guid.Parse(_testUser.Id)
            };

            var mockDatabaseContext = new ToDoDbContextBuilder().UseInMemorySqlite()
                                      .WithToDoItem(toDoItemOne.ItemId, toDoItemOne.ItemTitle, toDoItemOne.ItemStatus, toDoItemOne.ItemDueOn, toDoItemOne.UserId)
                                      .WithToDoItem(toDoItemTwo.ItemId, toDoItemTwo.ItemTitle, toDoItemTwo.ItemStatus, toDoItemTwo.ItemDueOn, toDoItemTwo.UserId)
                                      .Build();

            var messageSender = new Mock <IMessageSender>();

            new Mock <IMessageSender>().Setup(i => i.SendMessage(It.IsAny <string>())).Returns(It.IsAny <Task>());

            this._toDoService = new ToDoService(mockDatabaseContext, messageSender.Object);

            // test
            this._toDoService.DeleteItem(_testUser, toDoItemOne.ItemId);

            // assert
            var toDoItems = this._toDoService.GetItems(_testUser).Result;

            Assert.AreEqual(1, toDoItems.Count);
            Assert.AreEqual(toDoItemTwo.ItemId, toDoItems[0].ItemId);
            Assert.AreEqual(toDoItemTwo.ItemTitle, toDoItems[0].ItemTitle);
            Assert.AreEqual(toDoItemTwo.ItemStatus, toDoItems[0].ItemStatus);
            Assert.AreEqual(toDoItemTwo.ItemDueOn, toDoItems[0].ItemDueOn);

            // messageSender.Verify(mock => mock.SendMessage(It.IsAny<string>()), Times.Once);
        }