public void CanDeserializeUserExistsErrorResponse()
        {
            using (Stream data = new MemoryStream(Encoding.UTF8.GetBytes(cmUserAlreadyExistsErrorResponse)))
            {
                CMUserResponse response = new CMUserResponse(new CMResponse(HttpStatusCode.Accepted, data));

                Assert.AreEqual(response.Status, HttpStatusCode.Accepted);
                Assert.AreEqual(response.Errors.Length, 1);
            };
        }
        public void CanDeserializeUserCreateResponse()
        {
            using (Stream data = new MemoryStream(Encoding.UTF8.GetBytes(cmUserSuccessResponse)))
            {
                CMUserResponse response = new CMUserResponse(new CMResponse(HttpStatusCode.Accepted, data));

                Assert.AreEqual(response.Status, HttpStatusCode.Accepted);
                Assert.AreEqual(response.Errors.Length, 0);
                // TODO: add checks for the user object to ensure it parsed
                // TODO: add checks to ensure profile parsed
            };
        }
        public void CanDeserializeUserLoginResponse()
        {
            string userLoginResponse =
                @"{
                    ""session_token"":""44c31131ecac41cf92f49b28b84ebac4"",
                    ""expires"":""Tue, 13 Mar 2012 20:03:45 GMT"",
                    ""profile"": {
                        ""__id__"": ""0063C25CB88BB74AE6799BBFD5E4D205"",
                        ""favorite_cafe"": ""La Colombe Torrefaction""
                    }
                }";

            using (Stream data = new MemoryStream(Encoding.UTF8.GetBytes(userLoginResponse)))
            {
                CMUserResponse<CMUserProfileMock> response = new CMUserResponse<CMUserProfileMock>(new CMResponse(HttpStatusCode.Accepted, data));

                Assert.AreEqual(response.Status, HttpStatusCode.Accepted);
                Assert.AreEqual(response.Errors.Length, 0);
                Assert.AreEqual(response.CMUser.Profile.FavoriteCafe, "La Colombe Torrefaction");
            };
        }