Esempio n. 1
0
        /// <inheritdoc />
        public IResult ValidateDomainEvent(DomainEvent domainEvent)
        {
            if (domainEvent is null)
            {
                return(Result.Error("invalid data: null event", ErrorCode.ValidationFailed));
            }

            if (string.IsNullOrWhiteSpace(domainEvent.EventType))
            {
                return(Result.Error("event does not contain EventType", ErrorCode.ValidationFailed));
            }

            var result = domainEvent switch
            {
                ConfigurationBuilt @event => ValidateDomainEvent(@event),
                DefaultEnvironmentCreated @event => ValidateDomainEvent(@event),
                EnvironmentCreated @event => ValidateDomainEvent(@event),
                EnvironmentDeleted @event => ValidateDomainEvent(@event),
                EnvironmentKeysImported @event => ValidateDomainEvent(@event),
                EnvironmentKeysModified @event => ValidateDomainEvent(@event),
                StructureCreated @event => ValidateDomainEvent(@event),
                StructureDeleted @event => ValidateDomainEvent(@event),
                StructureVariablesModified @event => ValidateDomainEvent(@event),
                _ => Result.Error($"DomainEvent '{domainEvent.GetType().Name}' can't be validated; not supported", ErrorCode.ValidationFailed)
            };

            KnownMetrics.EventsValidated.WithLabels(result.IsError ? "Invalid" : "Valid").Inc();

            return(result);
        }
Esempio n. 2
0
        public void NullCheckOperatorNegated(string envCategory, string envName)
        {
            var left  = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));
            var right = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));

            Assert.False(left != right, "left != right");
        }
Esempio n. 3
0
        public void Equality(string envCategory, string envName)
        {
            var left  = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));
            var right = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));

            Assert.True(left.Equals(right), "left.Equals(right)");
        }
Esempio n. 4
0
        public void MetadataFilled(string envCategory, string envName)
        {
            var domainEvent = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));

            var metadata = domainEvent.GetMetadata();

            Assert.NotEmpty(metadata.Filters);
        }
Esempio n. 5
0
        private void Apply(EnvironmentDeleted e)
        {
            LastModified        = e.OccurredAt;
            LastModifiedBy      = e.UserId;
            LastModifiedVersion = CalculateLastModifiedVersion();

            var environment = _environments.First(t => t.Key == e.Key);

            _environments.Remove(environment);
        }
Esempio n. 6
0
        private IResult ValidateDomainEvent(EnvironmentDeleted @event)
        {
            var identifierResult = ValidateIdentifier(@event.Identifier);

            if (identifierResult.IsError)
            {
                return(identifierResult);
            }

            return(Result.Success());
        }
Esempio n. 7
0
        public void GetHashCodeStable(string envCategory, string envName)
        {
            var domainEvent = new EnvironmentDeleted(new EnvironmentIdentifier(envCategory, envName));

            var hashes = Enumerable.Range(0, 1000)
                         .Select(i => domainEvent.GetHashCode())
                         .ToList();

            var example = domainEvent.GetHashCode();

            Assert.True(hashes.All(h => h == example), "hashes.All(h=>h==example)");
        }