public void Validate_WithValidConfig_ShouldSucceed()
        {
            var options = new AzureTopicEventSenderOptions
            {
                SendConnectionString = Constants.ValidConnectionString
            };

            var result = _topicEventSenderOptionsValidator.Validate(null, options);

            Assert.That(result, Has.Property(nameof(ValidateOptionsResult.Failed)).EqualTo(false));
            Assert.That(result, Has.Property(nameof(ValidateOptionsResult.FailureMessage)).Null);
        }
        public void Validate_WitInvalidSendConnectionString_ShouldFail()
        {
            var options = new AzureTopicEventSenderOptions
            {
                SendConnectionString = Constants.InvalidConnectionString
            };

            var result = _topicEventSenderOptionsValidator.Validate(null, options);

            Assert.That(result, Has.Property(nameof(ValidateOptionsResult.Failed)).EqualTo(true));
            Assert.That(result,
                        Has
                        .Property(nameof(ValidateOptionsResult.FailureMessage))
                        .SupersetOf($"{nameof(AzureTopicEventSenderOptions.SendConnectionString)} is invalid:")
                        );
        }
        public void Validate_WithNullOrEmptySendConnectionString_ShouldFail(
            [Values("", " ", null)] string sendConnectionString
            )
        {
            var options = new AzureTopicEventSenderOptions {
                SendConnectionString = sendConnectionString
            };

            var result = _topicEventSenderOptionsValidator.Validate(null, options);

            Assert.That(result, Has.Property(nameof(ValidateOptionsResult.Failed)).EqualTo(true));
            Assert.That(result,
                        Has
                        .Property(nameof(ValidateOptionsResult.FailureMessage))
                        .EqualTo($"{nameof(AzureTopicEventSenderOptions.SendConnectionString)} is null or empty")
                        );
        }