public void ParseGetSendStatisticsJson()
        {
            const string sampleResponse =
                "{\"GetSendStatisticsResponse\":{\"GetSendStatisticsResult\":{\"SendDataPoints\":[{\"Bounces\":0,\"Complaints\":0,\"DeliveryAttempts\":2,\"Rejects\":0,\"Timestamp\":1.33225914E9}]},\"ResponseMetadata\":{\"RequestId\":\"cb31d1a3-72a7-11e1-87ad-0b0e460fd318\"}}}";


            var expected = new DataTypes.GetSendStatisticsResult()
            {
                SendDataPoints = new List<DataTypes.SendDataPoint>()
                              {
                                  new DataTypes.SendDataPoint()
                                      {
                                          DeliveryAttempts = 2,
                                          Timestamp = DateTime.Parse("Tue, 20 Mar 2012 15:59:00 GMT"),
                                          Rejects = 0,
                                          Bounces = 0,
                                          Complaints = 0
                                      },
                              }
            };

            var results = Converter.ParseGetSendStatisticsResultJson(sampleResponse);

            var result1 = results.SendDataPoints.First();
            var expected1 = expected.SendDataPoints.First();

            Assert.That(result1.DeliveryAttempts, Is.EqualTo(expected1.DeliveryAttempts));
            Assert.That(result1.Timestamp, Is.EqualTo(expected1.Timestamp));
            Assert.That(result1.Rejects, Is.EqualTo(expected1.Rejects));
            Assert.That(result1.Bounces, Is.EqualTo(expected1.Bounces));
            Assert.That(result1.Complaints, Is.EqualTo(expected1.Complaints));
        }
        public void ParseGetSendStatistics()
        {
            const string sampleResponse =
                "<GetSendStatisticsResponse xmlns=\"http://ses.amazonaws.com/doc/2010-12-01/\">" +
                "  <GetSendStatisticsResult>" +
                "    <SendDataPoints>" +
                "      <member>" +
                "        <DeliveryAttempts>8</DeliveryAttempts>" +
                "        <Timestamp>2011-08-03T19:23:00Z</Timestamp>" +
                "        <Rejects>0</Rejects>" +
                "        <Bounces>0</Bounces>" +
                "        <Complaints>0</Complaints>" +
                "      </member>" +
                "      <member>" +
                "        <DeliveryAttempts>7</DeliveryAttempts>" +
                "        <Timestamp>2011-08-03T06:53:00Z</Timestamp>" +
                "        <Rejects>0</Rejects>" +
                "        <Bounces>0</Bounces>" +
                "        <Complaints>0</Complaints>" +
                "      </member>" +
                "    </SendDataPoints>" +
                "  </GetSendStatisticsResult>" +
                "  <ResponseMetadata>" +
                "    <RequestId>c2b66ee5-c866-11e0-b17f-cddb0ab334db</RequestId>" +
                "  </ResponseMetadata>" +
                "</GetSendStatisticsResponse>";
            
            var expected = new DataTypes.GetSendStatisticsResult()
            {
                SendDataPoints = new List<DataTypes.SendDataPoint>()
                              {
                                  new DataTypes.SendDataPoint()
                                      {
                                          DeliveryAttempts = 8,
                                          Timestamp = DateTime.Parse("2011-08-03T19:23:00Z"),
                                          Rejects = 0,
                                          Bounces = 0,
                                          Complaints = 0
                                      },
                                  new DataTypes.SendDataPoint()
                                      {
                                          DeliveryAttempts = 7,
                                          Timestamp = DateTime.Parse("2011-08-03T06:53:00Z"),
                                          Rejects = 0,
                                          Bounces = 0,
                                          Complaints = 0
                                      },
                              }
            };

            var results = Converter.ParseGetSendStatisticsResult(sampleResponse);

            var result1 =results.SendDataPoints.Where(x => x.DeliveryAttempts == 8).First();
            var expected1 = expected.SendDataPoints.Where(x => x.DeliveryAttempts == 8).First();

            var result2 = results.SendDataPoints.Where(x => x.DeliveryAttempts == 7).First();
            var expected2 = expected.SendDataPoints.Where(x => x.DeliveryAttempts == 7).First();

            Assert.That(result1.DeliveryAttempts, Is.EqualTo(expected1.DeliveryAttempts));
            Assert.That(result1.Timestamp, Is.EqualTo(expected1.Timestamp));
            Assert.That(result1.Rejects, Is.EqualTo(expected1.Rejects));
            Assert.That(result1.Bounces, Is.EqualTo(expected1.Bounces));
            Assert.That(result1.Complaints, Is.EqualTo(expected1.Complaints));

            Assert.That(result2.DeliveryAttempts, Is.EqualTo(expected2.DeliveryAttempts));
            Assert.That(result2.Timestamp, Is.EqualTo(expected2.Timestamp));
            Assert.That(result2.Rejects, Is.EqualTo(expected2.Rejects));
            Assert.That(result2.Bounces, Is.EqualTo(expected2.Bounces));
            Assert.That(result2.Complaints, Is.EqualTo(expected2.Complaints));

        }