public void IfOptionsInputHasADifferntProviderNameChangeModelShouldThrowAnError()
        {
            // Arrange
            var options = new ProviderOptions("testProviderName");

            // Act & Arrange
            _ = Assert.Throws <ArgumentException>(() => options.ChangeModel(new ProviderOptions("test")));
        }
        public void IfOptionsNullTheChangeModelMethodShouldDoNothing()
        {
            // Arrange
            var options = new ProviderOptions("testProviderName")
            {
                Enabled       = true,
                NameClaimType = "klaus",
                RoleClaimType = "hamster"
            };

            // Act
            options.ChangeModel(null);
            // Assert
            Assert.True(options.Enabled);
            Assert.Equal("klaus", options.NameClaimType);
            Assert.Equal("hamster", options.RoleClaimType);
            Assert.Equal("testProviderName", options.ProviderName);
        }
        public void IfTheOptionsAreSetTheyShouldChanged()
        {
            // Arrange
            var providerName = "testProviderName";
            var options      = new ProviderOptions(providerName)
            {
                Enabled       = true,
                NameClaimType = "klaus",
                RoleClaimType = "hamster"
            };

            // Act
            options.ChangeModel(new ProviderOptions(providerName)
            {
                NameClaimType = "Peter", RoleClaimType = "Pferd", Enabled = true
            });
            // Assert
            Assert.True(options.Enabled);
            Assert.Equal("Peter", options.NameClaimType);
            Assert.Equal("Pferd", options.RoleClaimType);
            Assert.Equal(providerName, options.ProviderName);
        }
        public void IfTheOptionsStringAreNullOrWhitespaceTheyShouldNotChanged()
        {
            // Arrange
            var providerName = "testProviderName";
            var options      = new ProviderOptions(providerName)
            {
                Enabled       = true,
                NameClaimType = "klaus",
                RoleClaimType = "hamster"
            };

            // Act
            options.ChangeModel(new ProviderOptions(providerName)
            {
                NameClaimType = "           ", RoleClaimType = "             ", Enabled = true
            });
            // Assert
            Assert.True(options.Enabled);
            Assert.Equal("klaus", options.NameClaimType);
            Assert.Equal("hamster", options.RoleClaimType);
            Assert.Equal(providerName, options.ProviderName);
        }