public void SetUp()
        {
            postDataBuilder = new PostDataBuilder();

            analyticsEvent = MockRepository.GenerateMock <IUniversalAnalyticsEvent>();
            analyticsEvent.Expect(mock => mock.TrackingId)
            .Return(trackingId);
            analyticsEvent.Expect(mock => mock.AnonymousClientId)
            .Return(anonymousClientId);
            analyticsEvent.Expect(mock => mock.EventAction)
            .Return(eventAction);
            analyticsEvent.Expect(mock => mock.EventCategory)
            .Return(eventCategory);
            analyticsEvent.Expect(mock => mock.EventLabel)
            .Return(eventLabel);
            analyticsEvent.Expect(mock => mock.EventValue)
            .Return(eventValue);
        }
        public void SetUp()
        {
            _postDataBuilder = new PostDataBuilder();

            _analyticsEvent = MockRepository.GenerateMock <IUniversalAnalyticsEvent>();
            _analyticsEvent.Expect(mock => mock.TrackingId)
            .Return(_trackingId);
            _analyticsEvent.Expect(mock => mock.AnonymousClientId)
            .Return(_anonymousClientId);
            _analyticsEvent.Expect(mock => mock.EventAction)
            .Return(_eventAction);
            _analyticsEvent.Expect(mock => mock.EventCategory)
            .Return(_eventCategory);
            _analyticsEvent.Expect(mock => mock.EventLabel)
            .Return(_eventLabel);
            _analyticsEvent.Expect(mock => mock.EventValue)
            .Return(_eventValue);
            _analyticsEvent.Expect(m => m.UserId)
            .Return(_userId);
            _analyticsEvent.Expect(mock => mock.NonInteractionHit)
            .Return(_nonInteractionHit);
        }
예제 #3
0
        /// <summary>
        /// Builds a WebRequest object and queries the server for a response.
        /// </summary>
        /// <param name="action">The action to perform.</param>
        /// <param name="progressChanged">A progress changed event handler receiving
        /// upload progress information.</param>
        /// <param name="fields">The POST fields to upload along with the request.</param>
        /// <returns>An XmlReader containing the response.</returns>
        private XmlDocument QueryServer(string action, QueryProgress progressChanged = null,
                                        params PostDataField[] fields)
        {
            PostDataBuilder builder = new PostDataBuilder();

            builder.AddPart(new PostDataField("action", action));
            builder.AddParts(fields);

            WebRequest reportRequest = HttpWebRequest.Create(BlackBoxServer);

            reportRequest.ContentType = builder.ContentType;
            reportRequest.Method      = "POST";
            reportRequest.Timeout     = int.MaxValue;
            using (Stream formStream = builder.Stream)
            {
                reportRequest.ContentLength = formStream.Length;
                using (Stream requestStream = reportRequest.GetRequestStream())
                {
                    int    lastRead = 0;
                    byte[] buffer   = new byte[32768];
                    while ((lastRead = formStream.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        requestStream.Write(buffer, 0, lastRead);
                        if (progressChanged != null)
                        {
                            progressChanged(formStream.Position, formStream.Length);
                        }
                    }
                }
            }

            try
            {
                HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse;
                using (Stream responseStream = response.GetResponseStream())
                {
                    XmlReader   reader = XmlReader.Create(responseStream);
                    XmlDocument result = new XmlDocument();
                    result.Load(reader);
                    return(result);
                }
            }
            catch (XmlException)
            {
                return(null);
            }
            catch (WebException e)
            {
                if (e.Response == null)
                {
                    throw;
                }

                using (Stream responseStream = e.Response.GetResponseStream())
                {
                    try
                    {
                        XmlReader reader = XmlReader.Create(responseStream);
                        reader.ReadToFollowing("error");
                        throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture,
                                                                     "The server encountered a problem while processing the request: {0}",
                                                                     reader.ReadString()));
                    }
                    catch (XmlException)
                    {
                    }
                }

                throw new InvalidDataException(((HttpWebResponse)e.Response).StatusDescription);
            }
        }
        public void SetUp()
        {
            postDataBuilder = new PostDataBuilder();

            analyticsEvent = MockRepository.GenerateMock<IUniversalAnalyticsEvent>();
            analyticsEvent.Expect(mock => mock.TrackingId)
                .Return(trackingId);
            analyticsEvent.Expect(mock => mock.AnonymousClientId)
                .Return(anonymousClientId);
            analyticsEvent.Expect(mock => mock.EventAction)
                .Return(eventAction);
            analyticsEvent.Expect(mock => mock.EventCategory)
                .Return(eventCategory);
            analyticsEvent.Expect(mock => mock.EventLabel)
                .Return(eventLabel);
            analyticsEvent.Expect(mock => mock.EventValue)
                .Return(eventValue);
        }