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); }
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); }
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); }
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); }
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); }