static DeliveryChannelConfigTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <DeliveryChannelConfig>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'action' is DeliveryChannelAction.Unknown",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <DeliveryChannelConfig>();

                    var result = new DeliveryChannelConfig(
                        referenceObject.Channel,
                        DeliveryChannelAction.Unknown);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "action", "Unknown" },
            });
        }
Beispiel #2
0
        static RelativeCutoffTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <RelativeCutoff>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'startOrEnd' is neither ReportingPeriodComponent.Start nor ReportingPeriodComponent.End",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <RelativeCutoff>();

                    var result = new RelativeCutoff(
                        referenceObject.Duration,
                        A.Dummy <ReportingPeriodComponent>().ThatIsNotIn(new[] { ReportingPeriodComponent.Start, ReportingPeriodComponent.End }));

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "startOrEnd is neither ReportingPeriodComponent.Start nor ReportingPeriodComponent.End", },
            });
        }
Beispiel #3
0
 static FiscalYearAccountingPeriodSystemTest()
 {
     ConstructorArgumentValidationTestScenarios
     .RemoveAllScenarios()
     .AddScenario(() =>
                  new ConstructorArgumentValidationTestScenario <FiscalYearAccountingPeriodSystem>
     {
         Name             = "Constructor should throw ArgumentOutOfRangeException when parameter 'lastMonthInFiscalYear' is MonthOfYear.Invalid",
         ConstructionFunc = () => new FiscalYearAccountingPeriodSystem(MonthOfYear.Invalid),
         ExpectedExceptionMessageContains = new[] { "lastMonthInFiscalYear", "Invalid" },
         ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
     })
     .AddScenario(() =>
                  new ConstructorArgumentValidationTestScenario <FiscalYearAccountingPeriodSystem>
     {
         Name             = "Constructor should throw ArgumentOutOfRangeException when parameter 'lastMonthInFiscalYear' is MonthOfYear.December",
         ConstructionFunc = () => new FiscalYearAccountingPeriodSystem(MonthOfYear.December),
         ExpectedExceptionMessageContains = new[] { "lastMonthInFiscalYear", "December" },
         ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
     });
 }
        static ColumnDefinitionTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <ColumnDefinition>
            {
                Name             = "constructor should throw ArgumentException when parameter 'name' is not alphanumeric nor _",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <ColumnDefinition>();

                    var result = new ColumnDefinition(
                        referenceObject.Name + "^",
                        referenceObject.SqlDataType);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "name", "alphanumeric" },
            });
        }
Beispiel #5
0
        static UrlLinkedResourceTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <UrlLinkedResource>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'resourceKind' is UrlLinkedResourceKind.Unknown",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <UrlLinkedResource>();

                    var result = new UrlLinkedResource(
                        referenceObject.Url,
                        UrlLinkedResourceKind.Unknown);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "resourceKind", "Unknown", },
            });
        }
Beispiel #6
0
        static ChannelOperationMonitoringInfoTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <ChannelOperationMonitoringInfo>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'succeededEventType' is equal to parameter 'failedEventType'",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <ChannelOperationMonitoringInfo>();

                    var result = new ChannelOperationMonitoringInfo(
                        referenceObject.ChannelOperationTrackingCodeId,
                        referenceObject.SucceededEventType,
                        referenceObject.SucceededEventType);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "failedEventType", },
            });
        }
        static CouldNotGetOrUseAudienceEventTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <CouldNotGetOrUseAudienceEvent>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'getAudienceResult' GetOutcome() is not any of GetAudienceOutcome.[CouldNotGetAudienceAndNoFailuresReported|CouldNotGetAudienceWithSomeFailuresReported|DespiteGettingAudienceFailuresPreventUsingIt]",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <CouldNotGetOrUseAudienceEvent>();

                    var result = new CouldNotGetOrUseAudienceEvent(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        A.Dummy <GetAudienceResult>().Whose(_ => !new[] { GetAudienceOutcome.CouldNotGetAudienceAndNoFailuresReported, GetAudienceOutcome.CouldNotGetAudienceWithSomeFailuresReported, GetAudienceOutcome.DespiteGettingAudienceFailuresPreventUsingIt }.Contains(_.GetOutcome())));

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "getAudienceOutcome" },
            });
        }
Beispiel #8
0
        static DatapointTTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <Datapoint <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'reportingPeriod' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <Datapoint <Version> >();

                    var result = new Datapoint <Version>(
                        null,
                        referenceObject.Value);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "reportingPeriod", },
            });
        }
        static GetCellValueOpTResultTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <GetCellValueOp <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'cellLocator' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <GetCellValueOp <Version> >();

                    var result = new GetCellValueOp <Version>(
                        null,
                        referenceObject.DefaultValue);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "cellLocator", },
            });
        }
        static SqlOutputParameterResultTValueTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <SqlOutputParameterResult <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'outputParameter' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <SqlOutputParameterResult <Version> >();

                    var result = new SqlOutputParameterResult <Version>(
                        null,
                        referenceObject.Value);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "outputParameter", },
            });
        }
Beispiel #11
0
        static NamedValueTValueTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NamedValue <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'name' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NamedValue <Version> >();

                    var result = new NamedValue <Version>(
                        null,
                        referenceObject.Value);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "name", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NamedValue <Version> >
            {
                Name             = "constructor should throw ArgumentException when parameter 'name' is white space scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NamedValue <Version> >();

                    var result = new NamedValue <Version>(
                        Invariant($"  {Environment.NewLine}  "),
                        referenceObject.Value);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "name", "white space", },
            });
        }
Beispiel #12
0
        static SentOnSomePreparedChannelsEventTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <SentOnSomePreparedChannelsEvent>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'attemptToSendNotificationResult' GetOutcome() is not AttemptToSendNotificationOutcome.SentOnSomePreparedChannels",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <SentOnSomePreparedChannelsEvent>();

                    var result = new SentOnSomePreparedChannelsEvent(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        A.Dummy <AttemptToSendNotificationResult>().ThatIs(_ => _.GetOutcome() != AttemptToSendNotificationOutcome.SentOnSomePreparedChannels));

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "attemptToSendNotificationOutcome", "SentOnSomePreparedChannels" },
            });
        }
Beispiel #13
0
        static ColumnTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <Column>
            {
                Name             = "constructor should throw ArgumentException when parameter 'id' is white space scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <Column>();

                    var result = new Column(
                        Invariant($"  {Environment.NewLine}  "),
                        referenceObject.Format);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "id", "white space", },
            });
        }
Beispiel #14
0
        static FooterRowsTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <FooterRows>
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'rows' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <FooterRows>();

                    var result = new FooterRows(
                        null,
                        referenceObject.Format);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "rows", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <FooterRows>
            {
                Name             = "constructor should throw ArgumentException when parameter 'rows' contains a null element scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <FooterRows>();

                    var result = new FooterRows(
                        new FlatRow[0].Concat(referenceObject.Rows).Concat(new FlatRow[] { null }).Concat(referenceObject.Rows).ToList(),
                        referenceObject.Format);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "rows", "contains at least one null element", },
            });
        }
        static IdentifiedSerializerRepresentationTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <IdentifiedSerializerRepresentation>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'serializationFormat' is SerializationFormat.Invalid scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <IdentifiedSerializerRepresentation>();

                    var result = new IdentifiedSerializerRepresentation(
                        referenceObject.Id,
                        referenceObject.SerializerRepresentation,
                        SerializationFormat.Invalid);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "serializationFormat", "Invalid" },
            });
        }
Beispiel #16
0
        static DateTimeCellValueFormatTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <DateTimeCellValueFormat>
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'format' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <DateTimeCellValueFormat>();

                    var result = new DateTimeCellValueFormat(
                        null,
                        referenceObject.MissingValueText);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "format", },
            });
        }
Beispiel #17
0
        static AvailabilityCheckResultTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <AvailabilityCheckResult>
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'availabilityOp' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <AvailabilityCheckResult>();

                    var result = new AvailabilityCheckResult(
                        null,
                        referenceObject.MessageOp);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "availabilityOp", },
            });
        }
Beispiel #18
0
        static EmailMailboxTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <EmailMailbox>
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'address' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <EmailMailbox>();

                    var result = new EmailMailbox(
                        null,
                        referenceObject.Name);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "address", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <EmailMailbox>
            {
                Name             = "constructor should throw ArgumentException when parameter 'address' is white space scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <EmailMailbox>();

                    var result = new EmailMailbox(
                        Invariant($"  {Environment.NewLine}  "),
                        referenceObject.Name);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "address", "white space", },
            });
        }
        static ChannelOperationOutcomeInfoTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <ChannelOperationOutcomeInfo>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'outcome' is ChannelOperationOutcome.Unknown",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <ChannelOperationOutcomeInfo>();

                    var result = new ChannelOperationOutcomeInfo(
                        referenceObject.ChannelOperationTrackingCodeId,
                        referenceObject.EventType,
                        ChannelOperationOutcome.Unknown);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "Unknown", },
            });
        }
        static UpdateStreamStoredProceduresOpTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <UpdateStreamStoredProceduresOp>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'maxConcurrentHandlingCount' is 0 scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <UpdateStreamStoredProceduresOp>();

                    var result = new UpdateStreamStoredProceduresOp(
                        referenceObject.RecordTagAssociationManagementStrategy,
                        0);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "maxConcurrentHandlingCount" },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <UpdateStreamStoredProceduresOp>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'maxConcurrentHandlingCount' is negative scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <UpdateStreamStoredProceduresOp>();

                    var result = new UpdateStreamStoredProceduresOp(
                        referenceObject.RecordTagAssociationManagementStrategy,
                        A.Dummy <NegativeInteger>());

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "maxConcurrentHandlingCount" },
            });
        }
        static SucceededInSendingEmailEventTIdTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <SucceededInSendingEmailEvent <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'sendEmailResponse' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <SucceededInSendingEmailEvent <Version> >();

                    var result = new SucceededInSendingEmailEvent <Version>(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        null);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "sendEmailResponse", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <SucceededInSendingEmailEvent <Version> >
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when sendEmailResponse.SendEmailResult != SendEmailRequest.Success scenario",
                ConstructionFunc = () =>
                {
                    var emailFailedToSendEvent = A.Dummy <FailedToSendEmailEvent <Version> >();

                    var result = new SucceededInSendingEmailEvent <Version>(emailFailedToSendEvent.Id, emailFailedToSendEvent.TimestampUtc, emailFailedToSendEvent.SendEmailResponse);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "sendEmailResponse.SendEmailResult", "Success" },
            });
        }
        static ScriptedObjectTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <ScriptedObject>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'databaseObjectType' is ScriptableObjectType.Invalid scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <ScriptedObject>();

                    var result = new ScriptedObject(
                        referenceObject.Name,
                        ScriptableObjectType.Invalid,
                        referenceObject.DropScript,
                        referenceObject.CreateScript);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "scriptableObjectType", "Invalid" },
            });
        }
Beispiel #23
0
        static BuildTagsOpTEventTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <BuildTagsOp <AudienceOptedOutOfAllChannelsEvent> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'event' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <BuildTagsOp <AudienceOptedOutOfAllChannelsEvent> >();

                    var result = new BuildTagsOp <AudienceOptedOutOfAllChannelsEvent>(
                        referenceObject.TrackingCodeId,
                        null,
                        referenceObject.InheritableTags);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "event", },
            });
        }
Beispiel #24
0
        static ConstantExpressionRepresentationTTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <ConstantExpressionRepresentation <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'type' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <ConstantExpressionRepresentation <Version> >();

                    var result = new ConstantExpressionRepresentation <Version>(
                        null,
                        referenceObject.NodeType,
                        referenceObject.Value);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "type" },
            });
        }
        static SendEmailRequestedEventTIdTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <SendEmailRequestedEvent <Version> >
            {
                Name             = "constructor should throw ArgumentNullException when parameter 'sendEmailRequest' is null scenario",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <SendEmailRequestedEvent <Version> >();

                    var result = new SendEmailRequestedEvent <Version>(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        null);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentNullException),
                ExpectedExceptionMessageContains = new[] { "sendEmailRequest", },
            });
        }
Beispiel #26
0
        static ModelPrivateSetMultilevelGrandchild1BTest()
        {
            ConstructorArgumentValidationTestScenarios.AddScenario(
                ConstructorArgumentValidationTestScenario <ModelPrivateSetMultilevelGrandchild1B> .ConstructorCannotThrowScenario);

            ComparableTestScenarios.AddScenario(new ComparableTestScenario <ModelPrivateSetMultilevelGrandchild1B>
            {
                Name            = "Scenario 1",
                ReferenceObject = new ModelPrivateSetMultilevelGrandchild1B(1, 2, 3),
                ObjectsThatAreEqualToButNotTheSameAsReferenceObject = new[]
                {
                    new ModelPrivateSetMultilevelGrandchild1B(1, 2, 3),
                    new ModelPrivateSetMultilevelGrandchild1B(3, 2, 1),
                    new ModelPrivateSetMultilevelGrandchild1B(0, 6, 0),
                },
                ObjectsThatAreLessThanReferenceObject = new[]
                {
                    new ModelPrivateSetMultilevelGrandchild1B(1, 2, 2),
                    new ModelPrivateSetMultilevelGrandchild1B(6, -2, -1),
                    new ModelPrivateSetMultilevelGrandchild1B(0, 5, 0),
                },
                ObjectsThatAreGreaterThanReferenceObject = new[]
                {
                    new ModelPrivateSetMultilevelGrandchild1B(2, 2, 3),
                    new ModelPrivateSetMultilevelGrandchild1B(3, 3, 1),
                    new ModelPrivateSetMultilevelGrandchild1B(0, 7, 0),
                },
                ObjectsThatAreNotOfTheSameTypeAsReferenceObject = new object[]
                {
                    1,
                    "dummy-string",
                    new ModelPrivateSetMultilevelGrandchild1A(1, 2, 3),
                    new ModelPrivateSetMultilevelGrandchild2A(1, 2, 3),
                    new ModelPrivateSetMultilevelGrandchild2B(1, 2, 3),
                },
            });
        }
        static NotificationTrackingCodeTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(ConstructorArgumentValidationTestScenario <NotificationTrackingCode> .ConstructorCannotThrowScenario);

            StringRepresentationTestScenarios
            .AddScenario(() =>
                         new StringRepresentationTestScenario <NotificationTrackingCode>
            {
                Name = "ToString() gets friendly string representation",
                SystemUnderTestExpectedStringRepresentationFunc = () =>
                {
                    var systemUnderTest = A.Dummy <NotificationTrackingCode>();

                    var result = new SystemUnderTestExpectedStringRepresentation <NotificationTrackingCode>
                    {
                        SystemUnderTest = systemUnderTest,
                        ExpectedStringRepresentation = Invariant($"{systemUnderTest.Id}"),
                    };

                    return(result);
                },
            });
        }
        static PreparedToSendOnSomeChannelsEventTest()
        {
            ConstructorArgumentValidationTestScenarios
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <PreparedToSendOnSomeChannelsEvent>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'getAudienceResult' GetOutcome() is not any of GetAudienceOutcome.[GotAudienceWithNoFailuresReported|GetAudienceOutcome.GotAudienceWithReportedFailuresIgnored]",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <PreparedToSendOnSomeChannelsEvent>();

                    var result = new PreparedToSendOnSomeChannelsEvent(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        A.Dummy <GetAudienceResult>().Whose(_ => (_.GetOutcome() != GetAudienceOutcome.GotAudienceWithNoFailuresReported) && (_.GetOutcome() != GetAudienceOutcome.GotAudienceWithReportedFailuresIgnored)),
                        referenceObject.GetDeliveryChannelConfigsResult,
                        referenceObject.PrepareToSendNotificationResult);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "getAudienceOutcome", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <PreparedToSendOnSomeChannelsEvent>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'getDeliveryChannelConfigsResult' GetOutcome() is not any of GetDeliveryChannelConfigsOutcome.[GotDeliveryChannelConfigsWithNoFailuresReported|GetAudienceOutcome.GotDeliveryChannelConfigsWithReportedFailuresIgnored]",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <PreparedToSendOnSomeChannelsEvent>();

                    var result = new PreparedToSendOnSomeChannelsEvent(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        referenceObject.GetAudienceResult,
                        A.Dummy <GetDeliveryChannelConfigsResult>().Whose(_ => (_.GetOutcome() != GetDeliveryChannelConfigsOutcome.GotDeliveryChannelConfigsWithNoFailuresReported) && (_.GetOutcome() != GetDeliveryChannelConfigsOutcome.GotDeliveryChannelConfigsWithReportedFailuresIgnored)),
                        referenceObject.PrepareToSendNotificationResult);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "getDeliveryChannelConfigsOutcome", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <PreparedToSendOnSomeChannelsEvent>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'prepareToSendNotificationResult' GetOutcome() is is not PrepareToSendNotificationOutcome.PreparedToSendOnSomeChannels",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <PreparedToSendOnSomeChannelsEvent>();

                    var result = new PreparedToSendOnSomeChannelsEvent(
                        referenceObject.Id,
                        referenceObject.TimestampUtc,
                        referenceObject.GetAudienceResult,
                        referenceObject.GetDeliveryChannelConfigsResult,
                        A.Dummy <PrepareToSendNotificationResult>().Whose(_ => _.GetOutcome() != PrepareToSendNotificationOutcome.PreparedToSendOnSomeChannels));

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "prepareToSendNotificationOutcome" },
            });
        }
Beispiel #29
0
 static TestVoidOpTest()
 {
     ConstructorArgumentValidationTestScenarios
     .RemoveAllScenarios()
     .AddScenario(ConstructorArgumentValidationTestScenario <TestVoidOp> .ConstructorCannotThrowScenario);
 }
Beispiel #30
0
        static NullCellTest()
        {
            ConstructorArgumentValidationTestScenarios
            .RemoveAllScenarios()
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'columnsSpanned' is 0",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        0,
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "columnsSpanned is 0; must be null or >= 1.", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'columnsSpanned' is -1",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        -1,
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "columnsSpanned is -1; must be null or >= 1.", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'columnsSpanned' is negative number",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        A.Dummy <NegativeInteger>(),
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "columnsSpanned", "must be null or >= 1.", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentException when parameter 'validationEvents' contains a null element",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        referenceObject.ColumnsSpanned,
                        referenceObject.Details,
                        referenceObject.Validation,
                        new[] { A.Dummy <CellValidationEventBase>(), null, A.Dummy <CellValidationEventBase>() },
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "validationEvents contains a null element", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentException when parameter 'validation' is is null but parameter 'validationEvents' is not null nor empty.",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        referenceObject.ColumnsSpanned,
                        referenceObject.Details,
                        null,
                        Some.ReadOnlyDummies <CellValidationEventBase>().ToList(),
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "There is no validation specified, however one or more validationEvents exists.", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentOutOfRangeException when parameter 'defaultAvailability' is neither Availability.Enabled nor Availabilty.Disabled",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        referenceObject.ColumnsSpanned,
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        Availability.Unknown,
                        referenceObject.AvailabilityCheck,
                        referenceObject.AvailabilityCheckEvents,
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentOutOfRangeException),
                ExpectedExceptionMessageContains = new[] { "defaultAvailability is neither Availability.Enabled nor Availability.Disabled", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentException when parameter 'availabilityCheckEvents' contains a null element",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        referenceObject.ColumnsSpanned,
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        referenceObject.DefaultAvailability,
                        referenceObject.AvailabilityCheck,
                        new[] { A.Dummy <CellAvailabilityCheckEventBase>(), null, A.Dummy <CellAvailabilityCheckEventBase>() },
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "availabilityCheckEvents contains a null element", },
            })
            .AddScenario(() =>
                         new ConstructorArgumentValidationTestScenario <NullCell>
            {
                Name             = "constructor should throw ArgumentException when parameter 'availabilityCheck' is is null but parameter 'availabilityCheckEvents' is not null nor empty.",
                ConstructionFunc = () =>
                {
                    var referenceObject = A.Dummy <NullCell>();

                    var result = new NullCell(
                        referenceObject.Id,
                        referenceObject.ColumnsSpanned,
                        referenceObject.Details,
                        referenceObject.Validation,
                        referenceObject.ValidationEvents,
                        referenceObject.DefaultAvailability,
                        null,
                        Some.ReadOnlyDummies <CellAvailabilityCheckEventBase>().ToList(),
                        referenceObject.Format,
                        referenceObject.HoverOver);

                    return(result);
                },
                ExpectedExceptionType            = typeof(ArgumentException),
                ExpectedExceptionMessageContains = new[] { "There is no availabilityCheck specified, however one or more availabilityCheckEvents exists", },
            });
        }