Пример #1
0
        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");
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        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");
        }