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); }
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); }
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); }
public AwsKinesisResponse(Amazon.Kinesis.Model.PutRecordsResponse prr) { prr_ = prr; }