public void Supplied_by_immutable_instance() { var clientConfiguration = new Abstractions.Immutable.ClientConfiguration( new Abstractions.Immutable.ClientApiKeyConfiguration( file: null, id: "modified-foobar", secret: "modified-barbaz"), cacheManager: new Abstractions.Immutable.ClientCacheManagerConfiguration( enabled: false, defaultTimeToLive: 500, defaultTimeToIdle: 600, caches: new Dictionary<string, Abstractions.Immutable.ClientCacheConfiguration>() { ["application"] = new Abstractions.Immutable.ClientCacheConfiguration(timeToLive: 450, timeToIdle: 700), ["directory"] = new Abstractions.Immutable.ClientCacheConfiguration(timeToLive: 200, timeToIdle: 300) }), baseUrl: "https://api.foo.com/v1", connectionTimeout: 90, authenticationScheme: ClientAuthenticationScheme.Basic, proxy: new Abstractions.Immutable.ClientProxyConfiguration( port: 8088, host: "proxy.foo.bar", username: "******", password: "******" ) ); var applicationConfiguration = new Abstractions.Immutable.ApplicationConfiguration( name: "Lightsabers Galore", href: "https://api.foo.com/v1/applications/foo"); var webConfiguration = new Abstractions.Immutable.WebConfiguration( serverUri: "https://localhost:9000", basePath: "#/", oauth2Route: new Abstractions.Immutable.WebOauth2RouteConfiguration( enabled: false, uri: "/oauth2/token", clientCredentialsGrant: new Abstractions.Immutable.WebOauth2ClientCredentialsGrantConfiguration( enabled: false, accessToken: new Abstractions.Immutable.WebOauth2TokenConfiguration(timeToLive: 3601) ), passwordGrant: new Abstractions.Immutable.WebOauth2PasswordGrantConfiguration( enabled: false, validationStrategy: WebOauth2TokenValidationStrategy.Stormpath) ), accessTokenCookie: new Abstractions.Immutable.WebCookieConfiguration( name: "accessToken", httpOnly: false, secure: false, path: "/bar", domain: "foo.bar"), refreshTokenCookie: new Abstractions.Immutable.WebCookieConfiguration( name: "refreshToken", httpOnly: false, secure: true, path: "/foo", domain: "baz.qux"), produces: new List<string>() { "foo/bar", }, registerRoute: new Abstractions.Immutable.WebRegisterRouteConfiguration( enabled: false, uri: "/register1", nextUri: "/1", autoLogin: true, view: "registerView", form: new Abstractions.Immutable.WebRegisterRouteFormConfiguration( fields: new Dictionary<string, Abstractions.Immutable.WebFieldConfiguration>() { ["email"] = new Abstractions.Immutable.WebFieldConfiguration( enabled: false, visible: false, label: "I Can Has Email", placeholder: "Can Has?", required: false, type: "text") }, fieldOrder: new List<string>() { "email", "hidden", }) ), verifyRoute: new Abstractions.Immutable.WebVerifyEmailRouteConfiguration( enabled: true, uri: "/verify1", nextUri: "/login2", view: "verifyView"), loginRoute: new Abstractions.Immutable.WebLoginRouteConfiguration( enabled: false, uri: "/login3", nextUri: "/3", view: "loginView", form: new Abstractions.Immutable.WebLoginRouteFormConfiguration( fields: new Dictionary<string, Abstractions.Immutable.WebFieldConfiguration>() { ["password"] = new Abstractions.Immutable.WebFieldConfiguration( enabled: false, visible: false, label: "Password?", placeholder: "Maybe", required: false, type: "email") }, fieldOrder: new List<string>() { "password", }) ), logoutRoute: new Abstractions.Immutable.WebLogoutRouteConfiguration( enabled: false, uri: "/logout4", nextUri: "/4"), forgotPasswordRoute: new Abstractions.Immutable.WebForgotPasswordRouteConfiguration( enabled: true, uri: "/forgot5", view: "forgot-password-view", nextUri: "/login?status=forgot!"), changePasswordRoute: new Abstractions.Immutable.WebChangePasswordRouteConfiguration( enabled: true, uri: "/change6", nextUri: "/login?status=reset?", view: "change-password-view", errorUri: "/forgot?status=invalid_sptoken:("), idSite: new Abstractions.Immutable.WebIdSiteConfiguration( enabled: true, loginUri: "/456", forgotUri: "/#/forgot789", registerUri: "/#/register0"), callbackRoute: new Abstractions.Immutable.WebCallbackRouteConfiguration( enabled: false, uri: "/stormpath-callback"), social: new Dictionary<string, Abstractions.Immutable.WebSocialProviderConfiguration>() { ["facebook"] = new Abstractions.Immutable.WebSocialProviderConfiguration("/callbackz/facebook", "email birthday"), ["github"] = new Abstractions.Immutable.WebSocialProviderConfiguration("/callbackz/github", "user:everything"), ["google"] = new Abstractions.Immutable.WebSocialProviderConfiguration("/callbackz/google", "email profile friends"), ["linkedin"] = new Abstractions.Immutable.WebSocialProviderConfiguration("/callbackz/linkedin", "email interests") }, meRoute: new Abstractions.Immutable.WebMeRouteConfiguration( expand: new Dictionary<string, bool>() { ["directory"] = true }, enabled: false, uri: "/myself") ); var stormpathConfiguration = new Abstractions.Immutable.StormpathConfiguration( clientConfiguration, applicationConfiguration, webConfiguration); var config = ConfigurationLoader.Initialize().Load(stormpathConfiguration); ValidateConfig(config); }
public void Copied_default_dictionaries_are_case_insensitive() { var config = new Abstractions.Immutable.StormpathConfiguration(Default.Configuration); config.Web.Social["Facebook"].Uri.Should().Be("/callbacks/facebook"); }