예제 #1
0
        public void Initialize(MixerCredentials credentials, TokenResult tokenResult)
        {
            _credentials = credentials ?? throw new ArgumentNullException(nameof(credentials));

            if (string.IsNullOrEmpty(_credentials.State))
            {
                _credentials.State = GetUniqueToken();
            }

            TokenResult = tokenResult ?? new TokenResult();
        }
예제 #2
0
        public async Task ShouldReturn_Valid_AuthUrlWithScopes()
        {
            var credentials        = new MixerCredentials("MyClientId", "https://localhost.com", "MyState");
            var mockFactory        = new Mock <IHttpClientFactory>();
            var mockClientLogger   = new Mock <ILogger <BaseHttpClient> >();
            var mockPolicyProvider = new Mock <IPolicyProvider>();

            var client = new BaseHttpClient(mockFactory.Object, mockPolicyProvider.Object, mockClientLogger.Object);

            client.Initialize(credentials);
            var url = await client.GetAuthorizeUrlAsync(CompoundScopes.SuperUser);

            url.Should().Contain("state=MyState");
            url.Should().Contain("client_id=MyClientId");
            url.Should().Contain("redirect_uri=https%3A%2F%2Flocalhost.com");
            url.Should().Contain("response_type=code");
            url.Should().Contain("scope=user%3Aact_as+achievement%3Aview%3Aself+channel%3Aanalytics%3Aself+channel%3Aclip%3Acreate%3Aself+channel%3Aclip%3Adelete%3Aself+channel%3Acostream%3Aself+channel%3AdeleteBanner%3Aself+channel%3Adetails%3Aself+channel%3Afollow%3Aself+channel%3AstreamKey%3Aself+channel%3Ateststream%3Aview%3Aself+channel%3Aupdate%3Aself+chat%3Abypass_catbot+chat%3Abypass_filter+chat%3Abypass_links+chat%3Abypass_slowchat+chat%3Acancel_skill+chat%3Achange_ban+chat%3Achange_role+chat%3Achat+chat%3Aclear_messages+chat%3Aconnect+chat%3Aedit_options+chat%3Agiveaway_start+chat%3Apoll_start+chat%3Apoll_vote+chat%3Apurge+chat%3Aremove_message+chat%3Atimeout+chat%3Aview_deleted+chat%3Awhisper+delve%3Aview%3Aself+interactive%3Amanage%3Aself+interactive%3Arobot%3Aself+invoice%3Aview%3Aself+log%3Aview%3Aself+oauth%3Amanage%3Aself+recording%3Amanage%3Aself+redeemable%3Acreate%3Aself+redeemable%3Aredeem%3Aself+redeemable%3Aview%3Aself+resource%3Afind%3Aself+subscription%3Acancel%3Aself+subscription%3Acreate%3Aself+subscription%3Arenew%3Aself+subscription%3Aview%3Aself+team%3Amanage%3Aself+transaction%3Acancel%3Aself+transaction%3Aview%3Aself+user%3Aanalytics%3Aself+user%3Adetails%3Aself+user%3AgetDiscordInvite%3Aself+user%3Alog%3Aself+user%3Anotification%3Aself+user%3Aseen%3Aself+user%3Aupdate%3Aself+user%3AupdatePassword%3Aself");
        }
예제 #3
0
        public ChannelTests()
        {
            var configuration = new ConfigurationBuilder()
                                .SetBasePath(Directory.GetCurrentDirectory())
                                .AddUserSecrets <Settings>()
                                .Build();

            var services = new ServiceCollection();

            services.AddMixerDotNet();
            services.Configure <Settings>(ops => configuration.Bind(ops));
            var provider = services.BuildServiceProvider();

            _mixerApi = provider.GetRequiredService <IMixerRestApi>();
            var options = provider.GetRequiredService <IOptions <Settings> >();

            var credentials = new MixerCredentials(options.Value.ClientId, options.Value.RedirectUri);

            _mixerApi.Initialize(credentials, options.Value.TokenResult);
        }
예제 #4
0
 public void Initialize(IMixerRestApi api, MixerCredentials credentials, TokenResult tokenResult)
 {
     HttpClient.Initialize(credentials, tokenResult);
     InitializeApi(api);
 }
예제 #5
0
 public void Initialize(MixerCredentials credentials, TokenResult tokenResult = null)
 => RestClient.Initialize(this, credentials, tokenResult);
예제 #6
0
 public void Initialize(MixerCredentials credentials) => Initialize(credentials, null);