Esempio n. 1
0
        public void RetrierUnitTest_Success()
        {
            int      num_ur_per_kr = 10;
            int      num_kr        = 2;
            DateTime start         = DateTime.Now;

            Amazon.Kinesis.Model.PutRecordsResponse response = new Amazon.Kinesis.Model.PutRecordsResponse();
            response.HttpStatusCode    = System.Net.HttpStatusCode.OK;
            response.FailedRecordCount = 0;
            response.Records           = new System.Collections.Generic.List <Amazon.Kinesis.Model.PutRecordsResultEntry>();
            response.Records.Add(new Amazon.Kinesis.Model.PutRecordsResultEntry()
            {
                SequenceNumber = "1234", ShardId = "shardId-000000000000"
            });
            response.Records.Add(new Amazon.Kinesis.Model.PutRecordsResultEntry()
            {
                SequenceNumber = "4567", ShardId = "shardId-000000000001"
            });
            AwsKinesisResult result = make_prr_ctx(num_kr, num_ur_per_kr, null, response, start, start.AddMilliseconds(5));


            int     count   = 0;
            Retrier retrier = new Retrier(
                new KPLNETInterface.KPLNETConfiguration(),
                (ur) =>
            {
                var attempts = ur.Attempts();
                Assert.AreEqual(attempts.Count, 1);
                Assert.IsTrue(attempts[0].Start() == start);
                Assert.IsTrue(attempts[0].End() == start.AddMilliseconds(5));
                Assert.IsTrue(attempts[0].Success());

                if (count++ / num_ur_per_kr == 0)
                {
                    Assert.AreEqual(attempts[0].Sequence_number(), "1234");
                    Assert.AreEqual(attempts[0].Shard_id(), "shardId-000000000000");
                }
                else
                {
                    Assert.AreEqual(attempts[0].Sequence_number(), "4567");
                    Assert.AreEqual(attempts[0].Shard_id(), "shardId-000000000001");
                }
            },
                (ur) =>
            {
                Assert.Fail("Retry should not be called");
            },
                (dt) =>
            {
                Assert.Fail("Shard map invalidate should not be called");
            });

            retrier.put(result);

            Assert.AreEqual(count, num_kr * num_ur_per_kr);
        }
Esempio n. 2
0
        Amazon.Kinesis.Model.PutRecordsResponse error_outcome(System.Net.HttpStatusCode errorCode)
        {
            var resp = new Amazon.Kinesis.Model.PutRecordsResponse();

            resp.HttpStatusCode = errorCode;
            //resp.
            //  Aws::Client::AWSError<Aws::Kinesis::KinesisErrors>(
            //      Aws::Kinesis::KinesisErrors::UNKNOWN,`3s    3```1
            //      name,
            //      msg,
            //      false));

            return(resp);
        }
Esempio n. 3
0
        AwsKinesisResult make_prr_ctx(int num_kr, int num_ur_per_kr, string error, Amazon.Kinesis.Model.PutRecordsResponse outcome, DateTime start, DateTime end)
        {
            List <KinesisRecord> krs = new List <KinesisRecord>();

            for (int i = 0; i < num_kr; i++)
            {
                var kr = new KinesisRecord();
                for (int j = 0; j < num_ur_per_kr; j++)
                {
                    var ur = TestUtil.make_user_record();
                    ur.Predicted_shard(i);
                    kr.add(ur);
                }
                krs.Add(kr);
            }
            AwsKinesisResult result = new AwsKinesisResult(error, new AwsKinesisResponse(outcome), new PutRecordsRequest(), start, end);

            result.context <PutRecordsRequest>().Items().AddRange(krs);
            return(result);
        }
Esempio n. 4
0
 public AwsKinesisResponse(Amazon.Kinesis.Model.PutRecordsResponse prr)
 {
     prr_ = prr;
 }