예제 #1
0
        public static void GetValidity___Should_return_Validity_Unknown___When_last_event_of_ValidationEvents_is_CellValidationFailedEvent()
        {
            // Arrange
            var events = new CellValidationEventBase[0]
                         .Concat(Some.ReadOnlyDummies <CellValidationEventBase>())
                         .Concat(new[]
            {
                A.Dummy <CellValidationFailedEvent>(),
            })
                         .ToList();

            var cell = A.Dummy <NotSlottedCellBase>().DeepCloneWithValidationEvents(events);

            // Act
            var actual = cell.GetValidity();

            // Assert
            actual.AsTest().Must().BeEqualTo(Validity.Unknown);
        }
예제 #2
0
        public static void Record_CellValidationEventBase___Should_add_validationEvent_to_the_end_of_ValidationEvents___When_Validation_is_not_null_and_ValidationEvents_is_null()
        {
            // Arrange
            var systemUnderTest = A.Dummy <NullCell>().DeepCloneWithValidationEvents(null);

            var validationEvent = A.Dummy <CellValidationEventBase>();

            IReadOnlyList <CellValidationEventBase> expected = new CellValidationEventBase[]
            {
                validationEvent,
            }
            .ToList();

            // Act
            systemUnderTest.Record(validationEvent);

            // Assert
            systemUnderTest.ValidationEvents.Must().BeEqualTo(expected);
        }
예제 #3
0
        public static void GetValidationMessageOrNull___Should_return_null___When_last_event_of_ValidationEvents_is_CellValidationClearedEvent()
        {
            // Arrange
            var events = new CellValidationEventBase[0]
                         .Concat(Some.ReadOnlyDummies <CellValidationEventBase>())
                         .Concat(new[]
            {
                A.Dummy <CellValidationClearedEvent>(),
            })
                         .ToList();

            var cell = A.Dummy <NotSlottedCellBase>().DeepCloneWithValidationEvents(events);

            // Act
            var actual = cell.GetValidationMessageOrNull();

            // Assert
            actual.AsTest().Must().BeNull();
        }
예제 #4
0
        public static void GetValidationStatus___Should_return_ValidationStatus_DeterminedSubjectIsValid___When_last_event_of_ValidationEvents_is_CellValidationDeterminedCellValidEvent()
        {
            // Arrange
            var events = new CellValidationEventBase[0]
                         .Concat(Some.ReadOnlyDummies <CellValidationEventBase>())
                         .Concat(new[]
            {
                A.Dummy <CellValidationDeterminedCellValidEvent>(),
            })
                         .ToList();

            var cell = A.Dummy <NotSlottedCellBase>().DeepCloneWithValidationEvents(events);

            // Act
            var actual = cell.GetValidationStatus();

            // Assert
            actual.AsTest().Must().BeEqualTo(ValidationStatus.DeterminedSubjectIsValid);
        }
예제 #5
0
        public static void ClearValidation___Should_add_CellValidationClearedEvent_to_the_end_of_ValidationEvents___When_Validation_is_not_null_and_ValidationEvents_is_null()
        {
            // Arrange
            var systemUnderTest = A.Dummy <NullCell>().DeepCloneWithValidationEvents(null);

            var timestampUtc = A.Dummy <UtcDateTime>();

            var details = A.Dummy <string>();

            IReadOnlyList <CellValidationEventBase> expected = new CellValidationEventBase[]
            {
                new CellValidationClearedEvent(timestampUtc, details),
            }
            .ToList();

            // Act
            systemUnderTest.ClearValidation(timestampUtc, details);

            // Assert
            systemUnderTest.ValidationEvents.Must().BeEqualTo(expected);
        }
        public static void Record_CellValidationEventBase___Should_add_validationEvent_to_the_end_of_ValidationEvents___When_Validation_is_not_null_and_ValidationEvents_is_not_empty()
        {
            // Arrange
            var systemUnderTest = A.Dummy <OperationCell <Version> >();

            var validationEvent = A.Dummy <CellValidationEventBase>();

            IReadOnlyList <CellValidationEventBase> expected = new CellValidationEventBase[0]
                                                               .Concat(systemUnderTest.ValidationEvents)
                                                               .Concat(new[]
            {
                validationEvent,
            })
                                                               .ToList();

            // Act
            systemUnderTest.Record(validationEvent);

            // Assert
            systemUnderTest.ValidationEvents.Must().BeEqualTo(expected);
        }
        public static void ClearValidation___Should_add_CellValidationClearedEvent_to_the_end_of_ValidationEvents___When_Validation_is_not_null_and_ValidationEvents_is_not_empty()
        {
            // Arrange
            var systemUnderTest = A.Dummy <OperationCell <Version> >();

            var timestampUtc = A.Dummy <UtcDateTime>();

            var details = A.Dummy <string>();

            IReadOnlyList <CellValidationEventBase> expected = new CellValidationEventBase[0]
                                                               .Concat(systemUnderTest.ValidationEvents)
                                                               .Concat(new[]
            {
                new CellValidationClearedEvent(timestampUtc, details),
            })
                                                               .ToList();

            // Act
            systemUnderTest.ClearValidation(timestampUtc, details);

            // Assert
            systemUnderTest.ValidationEvents.Must().BeEqualTo(expected);
        }