assertEquals(transfer2, ((MockFileItem) file2.getFileItem()).writtenFile);
MultipartTestBean1 mtb1 = new MultipartTestBean1();
assertEquals(null, mtb1.getField1());
assertEquals(null, mtb1.getField2());
ServletRequestDataBinder binder = new ServletRequestDataBinder(mtb1, "mybean");
binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());
binder.bind(request);
assertEquals(file1, mtb1.getField1());
assertEquals(new String(file2.getBytes()), new String(mtb1.getField2()));
MultipartTestBean2 mtb2 = new MultipartTestBean2();
assertEquals(null, mtb2.getField1());
assertEquals(null, mtb2.getField2());
binder = new ServletRequestDataBinder(mtb2, "mybean");
binder.registerCustomEditor(String.class, "field1", new StringMultipartFileEditor());
binder.registerCustomEditor(String.class, "field2", new StringMultipartFileEditor("UTF-16"));
binder.bind(request);
assertEquals(new String(file1.getBytes()), mtb2.getField1());
assertEquals(new String(file2.getBytes(), "UTF-16"), mtb2.getField2());
resolver.cleanupMultipart(request);
assertTrue(((MockFileItem) file1.getFileItem()).deleted);
assertTrue(((MockFileItem) file2.getFileItem()).deleted);
resolver.setEmpty(true);
request = resolver.resolveMultipart(originalRequest);
binder.setBindEmptyMultipartFiles(false);
String firstBound = mtb2.getField1();
binder.bind(request);
assertTrue(mtb2.getField1().length() > 0);
assertEquals(firstBound, mtb2.getField1());
request = resolver.resolveMultipart(originalRequest);
binder.setBindEmptyMultipartFiles(true);
binder.bind(request);
assertTrue(mtb2.getField1().length() == 0);
}