package net.ttddyy.dsproxy.test.assertj;

import net.ttddyy.dsproxy.test.BatchExecutionEntry;
import net.ttddyy.dsproxy.test.PreparedBatchExecution;
import net.ttddyy.dsproxy.test.assertj.data.ExecutionParameters;

/**
 * @author Tadaya Tsuyukubo
 * @since 1.4
 */
public class PreparedBatchExecutionAssert extends AbstractExecutionAssert<PreparedBatchExecutionAssert, PreparedBatchExecution> {

    public PreparedBatchExecutionAssert(PreparedBatchExecution actual) {
        super(actual, PreparedBatchExecutionAssert.class);
    }

    public PreparedBatchExecutionAssert isSuccess() {
        isExecutionSuccess();
        return this;
    }

    public PreparedBatchExecutionAssert isFailure() {
        isExecutionFailure();
        return this;
    }

    public PreparedBatchExecutionAssert hasBatchSize(int batchSize) {
        new BatchParameterHolderAssert(this.actual).hasBatchSize(batchSize, "prepared");
        return this;
    }

    // TODO: impl
    public PreparedBatchExecutionAssert batch(int batchIndex, ExecutionParameters params) {
        return this;
    }

    // TODO: impl
    public PreparedBatchEntryAssert batch(int batchIndex) {
        BatchExecutionEntry batchExecutionEntry = this.actual.getBatchExecutionEntries().get(batchIndex);
        return new PreparedBatchEntryAssert(batchExecutionEntry);
    }

}

@@ -206,16 +206,163 @@
 ameters;
+%0Aimport net.ttddyy.dsproxy.test.assertj.helper.BatchExecutionEntryAsserts;%0Aimport net.ttddyy.dsproxy.test.assertj.helper.ExecutionParameterAsserts;
 %0A%0A/**%0A *
@@ -536,16 +536,217 @@
 ion%3E %7B%0A%0A
+    private BatchExecutionEntryAsserts batchAssert = new BatchExecutionEntryAsserts(this.info);%0A    private ExecutionParameterAsserts parameterAssertHelper = new ExecutionParameterAsserts(this.info);%0A%0A
     publ
@@ -1287,33 +1287,16 @@
 %0A    %7D%0A%0A
-    // TODO: impl
 %0A    pub
@@ -1376,24 +1376,751 @@
 s params) %7B%0A
+%0A        this.batchAssert.assertBatchExecutionEntry(this.actual, batchIndex, PreparedBatchExecution.PreparedBatchExecutionEntry.class);%0A%0A        // entry is validated to be the one for prepared%0A        PreparedBatchExecution.PreparedBatchExecutionEntry batchEntry = (PreparedBatchExecution.PreparedBatchExecutionEntry) this.actual.getBatchExecutionEntries().get(batchIndex);%0A        this.parameterAssertHelper.assertParameterKeys(batchEntry, params, false);%0A%0A        if (ExecutionParameters.ExecutionParametersType.CONTAINS_KEYS_ONLY == params.getType()) %7B%0A            return this;  // only check keys%0A        %7D%0A%0A        // validate key-value pairs%0A        parameterAssertHelper.assertExecutionParameters(params, batchEntry);%0A%0A
         retu

Implement batch method