public void test(TestHarness harness) {
    TestOfAssembly testcase = new TestOfAssembly();

    // build an OFB-Blowfish cascade
    Cascade ofbBlowfish = new Cascade();
    Object modeNdx =
        ofbBlowfish.append(
            Stage.getInstance(
                ModeFactory.getInstance(Registry.OFB_MODE, new Blowfish(), 8), Direction.FORWARD));

    testcase.attributes.put(modeNdx, testcase.modeAttributes);

    IPad pkcs7 = PadFactory.getInstance(Registry.PKCS7_PAD);

    testcase.asm = new Assembly();
    testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish));
    testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7));

    testcase.testSymmetry(harness, 1);

    // add a compression transformer.
    // the resulting assembly encrypts + pad first and compresses later
    //      testcase.asm = new Assembly();
    //      testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish));
    //      testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7));
    testcase.asm.addPostTransformer(Transformer.getDeflateTransformer());

    testcase.testSymmetry(harness, 2);

    // now build an assembly that compresses first and encrypts + pads later
    testcase.asm = new Assembly();
    testcase.asm.addPreTransformer(Transformer.getCascadeTransformer(ofbBlowfish));
    testcase.asm.addPreTransformer(Transformer.getPaddingTransformer(pkcs7));
    testcase.asm.addPreTransformer(Transformer.getDeflateTransformer());

    testcase.testSymmetry(harness, 3);
  }