예제 #1
0
        public void TestStaticRoomLifecycle()
        {
            const string roomName        = "Room Lifecycle {0}";
            const string roomDescription = "Description of the room lifecycle {0}";
            var          roomId          = TestStaticCreateRoom();

            TestStaticGetRoom(roomId);
            TestStaticPutRoom(roomId);
            TestStaticDeleteRoom(roomId);

            // [POST] /rooms.
            long TestStaticCreateRoom()
            {
                var identifier = "New";
                var parameters = new NewRoomParameters
                {
                    Description        = string.Format(CultureInfo.InvariantCulture, roomDescription, identifier),
                    IconPreset         = IconPresetValue.Group,
                    Link               = false,
                    LinkCode           = "jlklqwes",
                    LinkNeedAcceptance = true,
                    MembersAdminIds    = new[] { AccountId },
                    MembersMemberIds   = null,
                    MembersReadonlyIds = null,
                    Name               = string.Format(CultureInfo.InvariantCulture, roomName, identifier),
                };

                var response = ChatworkClient.PostRoom(Token, parameters);

                AssertPostRoomsResponse(response);

                return(response.Data.RoomId);
            }

            // [GET] /rooms/{room_id}.
            void TestStaticGetRoom(long roomId)
            {
                var response = ChatworkClient.GetRoom(Token, roomId);

                AssertGetRoomResponse(response, roomId);
            }

            // [PUT] /rooms/{room_id}.
            void TestStaticPutRoom(long roomId)
            {
                var iconPresetList = Enum.GetValues(typeof(IconPresetValue));

                foreach (IconPresetValue iconPreset in iconPresetList)
                {
                    var identifier = string.Format(
                        CultureInfo.InvariantCulture,
                        "[{0}]",
                        StringValueAttribute.GetStringValue(iconPreset));

                    var parameters = new UpdateRoomParameters
                    {
                        Description = string.Format(CultureInfo.InvariantCulture, roomDescription, identifier),
                        IconPreset  = iconPreset,
                        Name        = string.Format(CultureInfo.InvariantCulture, roomName, identifier),
                    };

                    var response = ChatworkClient.PutRoom(Token, roomId, parameters);
                    AssertPutRoomResponse(response, roomId);
                }
            }

            // [DELETE] /rooms/{room_id}.
            void TestStaticDeleteRoom(long roomId)
            {
                var parameters = new DeleteRoomParameters
                {
                    ActionType = ActionTypeValue.Delete,
                };

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

                AssertDeleteRoomResponse(response);
            }
        }