@Test public void produceRequestGetErrorResponseTest() { ProduceRequest request = createProduceRequest(ApiKeys.PRODUCE.latestVersion()); Set<TopicPartition> partitions = new HashSet<>(request.partitionRecordsOrFail().keySet()); ProduceResponse errorResponse = (ProduceResponse) request.getErrorResponse(new NotEnoughReplicasException()); assertEquals(partitions, errorResponse.responses().keySet()); ProduceResponse.PartitionResponse partitionResponse = errorResponse.responses().values().iterator().next(); assertEquals(Errors.NOT_ENOUGH_REPLICAS, partitionResponse.error); assertEquals(ProduceResponse.INVALID_OFFSET, partitionResponse.baseOffset); assertEquals(RecordBatch.NO_TIMESTAMP, partitionResponse.logAppendTime); request.clearPartitionRecords(); // `getErrorResponse` should behave the same after `clearPartitionRecords` errorResponse = (ProduceResponse) request.getErrorResponse(new NotEnoughReplicasException()); assertEquals(partitions, errorResponse.responses().keySet()); partitionResponse = errorResponse.responses().values().iterator().next(); assertEquals(Errors.NOT_ENOUGH_REPLICAS, partitionResponse.error); assertEquals(ProduceResponse.INVALID_OFFSET, partitionResponse.baseOffset); assertEquals(RecordBatch.NO_TIMESTAMP, partitionResponse.logAppendTime); }
@Test public void produceRequestToStringTest() { ProduceRequest request = createProduceRequest(ApiKeys.PRODUCE.latestVersion()); assertEquals(1, request.partitionRecordsOrFail().size()); assertFalse(request.toString(false).contains("partitionSizes")); assertTrue(request.toString(false).contains("numPartitions=1")); assertTrue(request.toString(true).contains("partitionSizes")); assertFalse(request.toString(true).contains("numPartitions")); request.clearPartitionRecords(); try { request.partitionRecordsOrFail(); fail("partitionRecordsOrFail should fail after clearPartitionRecords()"); } catch (IllegalStateException e) { // OK } // `toString` should behave the same after `clearPartitionRecords` assertFalse(request.toString(false).contains("partitionSizes")); assertTrue(request.toString(false).contains("numPartitions=1")); assertTrue(request.toString(true).contains("partitionSizes")); assertFalse(request.toString(true).contains("numPartitions")); }