public void UpdateTransientFilter_UnhappyPath() { DateTime firstCreatedUtc = new DateTime(2017, 1, 1, 2, 30, 3); var createFilterEvent = new CreateFilterEvent { CustomerUID = Guid.NewGuid(), ProjectUID = Guid.NewGuid(), UserID = TestUtility.UIDs.JWT_USER_ID, FilterUID = Guid.NewGuid(), Name = string.Empty, FilterType = FilterType.Transient, FilterJson = "blah", ActionUTC = firstCreatedUtc }; var updateFilterEvent = new UpdateFilterEvent { CustomerUID = createFilterEvent.CustomerUID, ProjectUID = createFilterEvent.ProjectUID, UserID = createFilterEvent.UserID, FilterUID = createFilterEvent.FilterUID, Name = string.Empty, FilterType = FilterType.Transient, FilterJson = "blahDeBlah", ActionUTC = firstCreatedUtc.AddMinutes(2) }; var filter = new Filter { CustomerUid = createFilterEvent.CustomerUID.ToString(), ProjectUid = createFilterEvent.ProjectUID.ToString(), UserId = createFilterEvent.UserID, FilterUid = createFilterEvent.FilterUID.ToString(), Name = createFilterEvent.Name, FilterType = createFilterEvent.FilterType, FilterJson = createFilterEvent.FilterJson, LastActionedUtc = createFilterEvent.ActionUTC }; this.FilterRepo.StoreEvent(createFilterEvent).Wait(); WriteEventToDb(updateFilterEvent, "Filter event should not be updated", 0); var g = this.FilterRepo.GetFilter(createFilterEvent.FilterUID.ToString()); g.Wait(); Assert.IsNotNull(g.Result, "Unable to retrieve filter from filterRepo"); Assert.AreEqual(filter, g.Result, "retrieved filter is incorrect"); }
/// <summary> /// Create an instance of the master data events. Convert to JSON. /// </summary> /// <param name="eventObject">event to be published</param> /// <returns>json string with event serialized</returns> private string BuildEventIntoObject(dynamic eventObject) { var jsonString = string.Empty; string eventType = eventObject.EventType; switch (eventType) { case "CreateFilterEvent": var createFilterEvent = new CreateFilterEvent { ActionUTC = EventDate, FilterUID = eventObject.FilterUID, CustomerUID = eventObject.CustomerUID, ProjectUID = eventObject.ProjectUID, UserID = eventObject.UserID, FilterJson = eventObject.FilterJson, FilterType = eventObject.FilterType }; jsonString = JsonConvert.SerializeObject(new { CreateFilterEvent = createFilterEvent }, JsonSettings); break; case "UpdateFilterEvent": var updateFilterEvent = new UpdateFilterEvent { ActionUTC = EventDate, FilterUID = eventObject.FilterUID, CustomerUID = eventObject.CustomerUID, ProjectUID = eventObject.ProjectUID, UserID = eventObject.UserID, FilterJson = eventObject.FilterJson, FilterType = eventObject.FilterType }; jsonString = JsonConvert.SerializeObject(new { UpdateFilterEvent = updateFilterEvent }, JsonSettings); break; case "DeleteFilterEvent": var deleteFilterEvent = new DeleteFilterEvent { ActionUTC = EventDate, FilterUID = eventObject.FilterUID, CustomerUID = eventObject.CustomerUID, ProjectUID = eventObject.ProjectUID, UserID = eventObject.UserID, }; jsonString = JsonConvert.SerializeObject(new { DeleteFilterEvent = deleteFilterEvent }, JsonSettings); break; } return(jsonString); }
public void UpdatePersistentFilter_OutOfOrder(FilterType filterType) { DateTime firstCreatedUtc = new DateTime(2017, 1, 1, 2, 30, 3); var createFilterEvent = new CreateFilterEvent { CustomerUID = Guid.NewGuid(), ProjectUID = Guid.NewGuid(), UserID = Guid.NewGuid().ToString(), FilterUID = Guid.NewGuid(), Name = "persistent", FilterType = filterType, FilterJson = "blah", ActionUTC = firstCreatedUtc }; var updateFilterEvent = new UpdateFilterEvent { CustomerUID = createFilterEvent.CustomerUID, ProjectUID = createFilterEvent.ProjectUID, UserID = createFilterEvent.UserID, FilterUID = createFilterEvent.FilterUID, Name = "changed", FilterType = filterType, FilterJson = "blahDeBlah", ActionUTC = firstCreatedUtc.AddMinutes(2) }; var filter = new Filter { CustomerUid = createFilterEvent.CustomerUID.ToString(), ProjectUid = createFilterEvent.ProjectUID.ToString(), UserId = createFilterEvent.UserID, FilterUid = createFilterEvent.FilterUID.ToString(), Name = updateFilterEvent.Name, FilterType = createFilterEvent.FilterType, FilterJson = updateFilterEvent.FilterJson, LastActionedUtc = updateFilterEvent.ActionUTC }; WriteEventToDb(updateFilterEvent, "Filter event should be created with the update"); WriteEventToDb(createFilterEvent, "Filter event should not be updated with the create", 0); var g = this.FilterRepo.GetFilter(createFilterEvent.FilterUID.ToString()); g.Wait(); Assert.IsNotNull(g.Result, "Unable to retrieve filter from filterRepo"); Assert.AreEqual(filter, g.Result, "retrieved filter is incorrect"); }