コード例 #1
0
        public async void GetTokenTest()
        {
            var rawClientMock = new Mock <IMilkRawClient>();

            rawClientMock
            .Setup(client => client.Invoke(It.IsAny <string>(), It.IsAny <IDictionary <string, string> >()))
            .Callback <string, IDictionary <string, string> >((method, parameters) =>
            {
                Assert.Equal("rtm.auth.getToken", method);
                Assert.Equal("frob123", parameters["frob"]);
            })
            .Returns(() => Task.FromResult(
                         @"
                            <rsp stat=""ok"">
                                <auth>
                                    <token>410c57262293e9d937ee5be75eb7b0128fd61b61</token>
                                    <perms>delete</perms>
                                    <user id=""1"" username=""bob"" fullname=""Bob T. Monkey"" />
                                </auth>
                            </rsp>
                        "));
            var rawClient = rawClientMock.Object;

            var auth = new MilkClient(rawClient).Auth;

            var frob      = "frob123";
            var authToken = await auth.GetToken(frob);

            Assert.Equal("410c57262293e9d937ee5be75eb7b0128fd61b61", authToken.Token);
            Assert.Equal(MilkPerms.Delete, authToken.Perms);
        }
コード例 #2
0
        public async void EchoTest()
        {
            var rawClientMock = new Mock <IMilkRawClient>();

            rawClientMock
            .Setup(client => client.Invoke(It.IsAny <string>(), It.IsAny <IDictionary <string, string> >()))
            .Callback <string, IDictionary <string, string> >((method, parameters) =>
            {
                Assert.Equal("rtm.test.echo", method);
                Assert.Equal("bar", parameters["foo"]);
            })
            .Returns(() => Task.FromResult <string>(@"
                    <rsp stat=""ok"">
                        <method>rtm.test.echo</method>
                        <foo>bar</foo>
                    </rsp>"
                                                    ));
            var rawClient = rawClientMock.Object;

            var test = new MilkClient(rawClient).Test;

            var param = new Dictionary <string, string>
            {
                { "foo", "bar" }
            };

            var result = await test.Echo(param);

            Assert.Equal("bar", result["foo"]);
        }
コード例 #3
0
        public void GetListTestForAll()
        {
            var rawClientMock = new Mock <IMilkRawClient>();

            rawClientMock
            .Setup(client => client.Invoke(It.IsAny <string>(), It.IsAny <IDictionary <string, string> >()))
            .Callback <string, IDictionary <string, string> >((method, parameters) =>
            {
                Assert.Equal("rtm.tasks.getList", method);
            })
            .Returns(() => Task.FromResult(@"
                    <rsp stat=""ok"">
                        <tasks>
                            <list id=""1"">
                                <taskseries id=""2"" created=""2015-05-07T10:19:54Z"" modified=""2015-05-07T10:19:54Z""
                                    name=""Get Bananas"" source=""api"" url=""http://example.com"" location_id="""">
                                    <tags/>
                                    <participants/>
                                    <notes/>
                                    <task id=""3"" due="""" has_due_time=""0"" added=""2015-05-07T10:19:54Z""
                                        completed="""" deleted="""" priority=""N"" postponed=""0"" estimate=""""/>
                                </taskseries>
                            </list>
                        </tasks>
                    </rsp>
                    "));
            var rawClient = rawClientMock.Object;

            var milkTasks = new MilkClient(rawClient).Tasks;

            IObservable <MilkTask> taskObservable = milkTasks.GetList();

            taskObservable.Subscribe(task =>
            {
                Assert.Equal(1, task.ListId);

                MilkTaskSeries taskSeries = task.TaskSeries;
                Assert.Equal(2, taskSeries.Id);

                Assert.Equal(3, task.Id);
            });
        }
コード例 #4
0
        public void GetListTestForAllList()
        {
            var rawClientMock = new Mock <IMilkRawClient>();

            rawClientMock
            .Setup(client => client.Invoke(It.IsAny <string>(), It.IsAny <IDictionary <string, string> >()))
            .Callback <string, IDictionary <string, string> >((method, parameters) =>
            {
                Assert.Equal("rtm.lists.getList", method);
            })
            .Returns(() => Task.FromResult(@"
                    <rsp stat=""ok"">
                        <lists>
                            <list id=""100653"" name=""Inbox""
                                deleted=""1"" locked=""1"" archived=""1"" position=""-1"" smart=""1"">
                                <filter>(priority:1)</filter>
                            </list>
                        </lists>
                    </rsp>
                    "));
            var rawClient = rawClientMock.Object;

            var lists = new MilkClient(rawClient).Lists;

            IObservable <MilkList> listObservable = lists.GetList();

            listObservable.Subscribe(
                list =>
            {
                Assert.Equal(100653, list.Id);
                Assert.Equal("Inbox", list.Name);
                Assert.True(list.Deleted);
                Assert.True(list.Locked);
                Assert.True(list.Archived);
                Assert.Equal(-1, list.Position);
                Assert.True(list.Smart);
                Assert.Equal("(priority:1)", list.Filter);
            });
        }
コード例 #5
0
        public async void GetFrobTest()
        {
            var rawClientMock = new Mock <IMilkRawClient>();

            rawClientMock
            .Setup(client => client.Invoke(It.IsAny <string>(), It.IsAny <IDictionary <string, string> >()))
            .Callback <string, IDictionary <string, string> >((method, parameters) =>
            {
                Assert.Equal("rtm.auth.getFrob", method);
            })
            .Returns(() => Task.FromResult(
                         @"
                            <rsp stat=""ok"">
                                <frob>frob</frob>
                            </rsp>
                        "));
            var rawClient = rawClientMock.Object;

            var auth = new MilkClient(rawClient).Auth;

            var frob = await auth.GetFrob();

            Assert.Equal("frob", frob);
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: masaru-b-cl/MilkSharp
        static async Task Main(string[] args)
        {
            // rename `appConfig.sample.json` to `appConfig.json`
            // and modify "api_key" and "api_sig" values.
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appConfig.json");
            var configuration = builder.Build();

            var context = new MilkContext(configuration["api_key"], configuration["api_sig"]);

            try
            {
                // rtm.test.* method client
                var test  = new MilkTest(context);
                var param = new Dictionary <string, string>
                {
                    { "foo", "bar" }
                };
                var rsp = await test.Echo(param);

                Console.WriteLine(rsp["foo"]);

                // create client
                var milkClient = new MilkClient(context);

                // authorization

                var frob = await milkClient.Auth.GetFrob();

                Console.WriteLine($"frob:{frob}");

                var authUrl = milkClient.Auth.GenerateAuthUrl(MilkPerms.Delete, frob);
                Console.WriteLine($"authUrl: {authUrl}");

                OpenUrlOnDefaultWebBrowser(authUrl);

                Console.WriteLine("Please authenticate with the web page, and push any key.");

                Console.ReadKey();

                var authToken = await milkClient.Auth.GetToken(frob);

                Console.WriteLine($"token: {authToken.Token}, perms: {authToken.Perms}");

                milkClient.Context.AuthToken = authToken;

                // rtm.lists.* method client
                milkClient.Lists.GetList()
                .Subscribe(
                    // OnNext
                    list => Console.WriteLine($"id: {list.Id}, name: {list.Name}"),
                    // OnError
                    (ex) => Console.WriteLine(ex.Message),
                    // OnComplete
                    () => Console.WriteLine("all list have gotten")
                    );

                Console.ReadKey();
            }
            catch (MilkHttpException httpEx)
            {
                Console.WriteLine($"http status code: {httpEx.StatusCode}");
            }
            catch (MilkFailureException failEx)
            {
                Console.WriteLine($"API call is failed | code: {failEx.Code}, msg: {failEx.Msg}");
            }
        }