Пример #1
0
        public void TestStaticRoomTaskLifecycle()
        {
            var roomId             = RoomList != null && RoomList.Any() ? RoomList.First() : Room;
            var taskIdList         = TestStaticGetRoomTasks(roomId);
            var extendedTaskIdList = TestStaticPostRoomTasks(roomId);
            var taskId             = extendedTaskIdList.FirstOrDefault(x => !taskIdList.Contains(x));

            TestStaticGetRoomTask(roomId, taskId);
            TestStaticPutRoomTaskStatus(roomId, taskId);

            // [GET] /rooms/{room_id}/tasks.
            IReadOnlyCollection <long> TestStaticGetRoomTasks(long roomId)
            {
                var parameters = new RoomTasksParameters
                {
                    AccountId          = AccountId,
                    AssignedByAccontId = AccountId,
                    Status             = TaskStatusValue.Open,
                };

                var response = ChatworkClient.GetRoomTasks(Token, roomId, parameters);

                AssertGetRoomTasksResponse(response);

                return(response.Data
                       ?.Select(x => x.TaskId).ToArray()
                       ?? Array.Empty <long>());
            }

            // [POST] /rooms/{room_id}/tasks.
            IReadOnlyCollection <long> TestStaticPostRoomTasks(long roomId)
            {
                var now        = DateTime.Now;
                var parameters = new NewRoomTaskParameters
                {
                    Body      = $"task test {now.Ticks}",
                    Limit     = now + TimeSpan.FromMinutes(60),
                    LimitType = LimitTypeValue.Date,
                    ToIds     = MemberList,
                };

                var response = ChatworkClient.PostRoomTask(Token, roomId, parameters);

                AssertPostRoomTasksResponse(response);
                return(response.Data.TaskIds ?? Array.Empty <long>());
            }

            // [GET] /rooms/{room_id}/tasks/{task_id}.
            void TestStaticGetRoomTask(long roomId, long taskId)
            {
                var response = ChatworkClient.GetRoomTask(Token, roomId, taskId);

                AssertGetRoomTaskResponse(response, taskId);
            }

            // [PUT] /rooms/{room_id}/tasks/{task_id}.
            void TestStaticPutRoomTaskStatus(long roomId, long taskId)
            {
                var parameters = new UpdateRoomTaskStatusParameters
                {
                    Body = TaskStatusValue.Done,
                };

                var response = ChatworkClient.PutRoomTaskStatus(Token, roomId, taskId, parameters);

                AssertPutRoomTaskStatusResponse(response, taskId);
            }
        }