예제 #1
0
        public void TestRequestWithResponse(int httpMethod)
        {
            var parameters = new Dictionary <string, object> {
                { "p1", "2" }
            };
            var method        = (HttpMethod)httpMethod;
            var bytes         = new byte[] { 1, 2, 3, 4 };
            var scAccessToken = new SCAccessToken
            {
                AccessToken = "aToken"
            };

            var expected = new EmptyClass();

            using (mocks.Record())
            {
                var uriBuilder = NewMock <IUriBuilder>();
                uriBuilder.Expect(f => f.AddCredentials(scCredentials, scAccessToken)).Return(uriBuilder);
                uriBuilderFactory.Expect(f => f.Create(Domain.Api.GetParameterName() + "prefix/command.json")).Return(uriBuilder);

                webGateway.Expect(f => f.Request(uriBuilder, method, parameters, bytes, scAccessToken.AccessToken)).Return("response");

                serializer.Expect(f => f.Deserialize <EmptyClass>("response")).Return(expected);
            }

            var soundCloudRawClient = new SoundCloudRawClient(scCredentials, uriBuilderFactory, webGateway, serializer)
            {
                AccessToken = scAccessToken
            };
            var actual = soundCloudRawClient.Request <EmptyClass>("prefix", "command", method, parameters, bytes, "json", Domain.Api);

            Assert.AreEqual(expected, actual);
        }
        public ISoundCloudClient Connect(SCAccessToken accessToken)
        {
            var credentials = new SCCredentials();

            var soundCloudRawClient = soundCloudRawClientFactory.Create(credentials);

            soundCloudRawClient.AccessToken = accessToken;

            var soundCloudClient = soundCloudClientBuilder.Build(soundCloudRawClient);

            return(soundCloudClient);
        }
        internal SoundCloudClient(SCAccessToken accessToken, ISubresourceFactory subresourceFactory)
        {
            this.subresourceFactory = subresourceFactory;

            CurrentToken = accessToken;

            Users   = subresourceFactory.CreateUsers();
            Tracks  = subresourceFactory.CreateTracks();
            Me      = subresourceFactory.CreateMe();
            Groups  = subresourceFactory.CreateGroups();
            Resolve = subresourceFactory.CreateResolve();
            OEmbed  = subresourceFactory.CreateOEmbed();
        }
예제 #4
0
        public IUriBuilder AddCredentials(SCCredentials credentials, SCAccessToken accessToken)
        {
            if (credentials == null)
            {
                return(this);
            }

            if (accessToken != null)
            {
                AddToken(accessToken.AccessToken);
            }

            return(AddClientId(credentials.ClientId));
        }
        public AccessToken Convert(SCAccessToken accessToken)
        {
            if (accessToken == null)
            {
                return(null);
            }

            return(new AccessToken
            {
                Token = accessToken.AccessToken,
                ExpiresIn = (int)accessToken.ExpiresIn.TotalSeconds,
                RefreshToken = accessToken.RefreshToken,
                Scope = accessToken.Scope.GetParameterName()
            });
        }