Ejemplo n.º 1
0
        public void TestAddToUserRequestHistoryFromManipulator()
        {
            var user = Manipulator.GetUsersWhere("Email=\"msn\"")[0];
            List <PreviousUserRequest> emptyRequests = new List <PreviousUserRequest>();

            Assert.AreEqual(0, emptyRequests.Count);
            List <PreviousUserRequest> appendedTo = new List <PreviousUserRequest>();

            appendedTo.Add(new PreviousUserRequest()
            {
                Request = new RequestString()
                {
                    Company = 1, Type = "Join"
                }
            });
            appendedTo[0].Request.CalculateMD5();
            user.EncodeRequests(appendedTo);
            byte[] requestHistory = user.RequestHistory;
            user.DecodeRequests();
            Manipulator.UpdateUserPreviousRequests(user);
            user = Manipulator.GetUsersWhere("Email=\"msn\"")[0];
            Assert.AreEqual(requestHistory.Length, user.RequestHistory.Length);
            for (int i = 0; i < requestHistory.Length; i++)
            {
                Assert.AreEqual(requestHistory[i], user.RequestHistory[i]);
            }
            emptyRequests = user.DecodeRequests();
            Assert.AreEqual(1, emptyRequests.Count);
        }
        public void TestRetrievePastRequests()
        {
            using (MySqlDataManipulator manipulator = new MySqlDataManipulator())
            {
                manipulator.Connect(TestingConstants.ConnectionString);
                Assert.IsTrue(NetTestingUserUtils.LogInTestingUser(TestingUserStorage.ValidUser1));
                var user = manipulator.GetUsersWhere(string.Format("Email=\"{0}\"", TestingUserStorage.ValidUser1.Email))[0];

                List <PreviousUserRequest> currentRequests = user.DecodeRequests();
                currentRequests.Add(new PreviousUserRequest()
                {
                    Request = new RequestString()
                    {
                        Company = 1, Type = "TestingRequest"
                    },
                    RequestStatus = "Completed"
                });
                user.EncodeRequests(currentRequests);
                Assert.IsTrue(manipulator.UpdateUserPreviousRequests(user));
                object[] contextAndRequest = ServerTestingMessageSwitchback.SwitchbackMessage(
                    TestingUserStorage.ValidUser1.ConstructRetrievePreviousRequestsRequest(
                        user.UserId,
                        UserVerificationUtil.ExtractLoginTokens(user).LoginToken),
                    "PUT");
                var ctx = contextAndRequest[0] as HttpListenerContext;
                var req = contextAndRequest[1] as HttpWebRequest;
                TestApi.PUT(ctx);
                HttpWebResponse resp = null;
                try
                {
                    resp = req.EndGetResponse(contextAndRequest[2] as IAsyncResult) as HttpWebResponse;
                }
                catch (Exception e)
                {
                    Assert.Fail(e.Message);
                }
                using (resp)
                {
                    Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);
                    byte[] data = new byte[resp.ContentLength];
                    resp.GetResponseStream().Read(data, 0, data.Length);
                    string received         = Encoding.UTF8.GetString(data);
                    var    receivedRequests = JsonDataObjectUtil <List <PreviousUserRequest> > .ParseObject(received);

                    Assert.AreEqual(currentRequests.Count, receivedRequests.Count);
                    for (int i = 0; i < currentRequests.Count; i++)
                    {
                        Assert.AreEqual(currentRequests[i], receivedRequests[i]);
                    }
                }
            }
        }