S2EJB3Unitの進み具合

まだできていないです。
遅くて申し訳ないですm(__)m


S2EJB3Unitのちょっとした紹介を書いておきます。

@Entity
public class Employee {

  @Id
  private Long id;
  
  private long empno;
  
  private String name;

  @ManyToOne
  private Department department;

  // getter/setter省略
}

というエンティティがあった場合、

  @Rollback
  public void test() {
    readXlsWriteDb("Prepare.xls");
    List<Employee> actual = employeeDao.getAllEmployees();
    DataSet expected = readXls("Result.xls");
    assertEntityListEquals("1", expected, actual);
  }

という感じでテストコードを書きます。
expectedなExcelのEmployeeとDepartmentのシートに期待値が用意されていればassertEntityListEqualsで実際値とそれらを比較します。
ちなみに、Employeeのシートに用意できるカラムは「id」「empno」「name」「department_id」です。最初、FK(ここではdepartment_id)はEntity単体(ここではEmployee)に含まれないのでテスト対象外と考えていたのですが、FKがないとテストデータが用意しにくいと思うのでFKの値はシートに用意されていればちゃんと比較することにします。

今は@JoinColumnsとか@PrimaryKeyJoinColumnsが使われたときにうまくFKを設定できるようにする方法を考えています。
(Embeddedでなくてもひとつの永続フィールド(プロパティ)に複数のカラムが対応することがあるのですよね。いままでこれをまったく考えていなかったですorz)