//! 子クラスタの取得、設定のテスト TEST_F( ClusterInfoTest, test_setAndGetChildren ) { ClusterInfo c; ClusterInfo c1; c1.addMember( 1 ); c1.addMember( 100 ); ClusterInfo c2; c2.addMember( 10 ); c2.addMember( 11 ); c2.addMember( 12 ); // 初期状態 ASSERT_EQ( NULL, c.getChild1() ); ASSERT_EQ( NULL, c.getChild2() ); ASSERT_EQ( 0, c.getMembers()->size() ); // 子クラスタを設定 c.setChildren( &c1, &c2 ); ASSERT_EQ( &c1, c.getChild1() ); ASSERT_EQ( &c2, c.getChild2() ); ASSERT_EQ( 5, c.getMembers()->size() ); ASSERT_EQ( 1, c.getMembers()->at( 0 ) ); ASSERT_EQ( 10, c.getMembers()->at( 1 ) ); ASSERT_EQ( 11, c.getMembers()->at( 2 ) ); ASSERT_EQ( 12, c.getMembers()->at( 3 ) ); ASSERT_EQ( 100, c.getMembers()->at( 4 ) ); // 両方NULLを設定(メンバは変わらない) c.setChildren( NULL, NULL ); ASSERT_EQ( NULL, c.getChild1() ); ASSERT_EQ( NULL, c.getChild2() ); ASSERT_EQ( 5, c.getMembers()->size() ); ASSERT_EQ( 1, c.getMembers()->at( 0 ) ); ASSERT_EQ( 10, c.getMembers()->at( 1 ) ); ASSERT_EQ( 11, c.getMembers()->at( 2 ) ); ASSERT_EQ( 12, c.getMembers()->at( 3 ) ); ASSERT_EQ( 100, c.getMembers()->at( 4 ) ); // 片方NULLのみを設定(メンバは変わる) c.setChildren( NULL, &c1 ); ASSERT_EQ( NULL, c.getChild1() ); ASSERT_EQ( &c1, c.getChild2() ); ASSERT_EQ( 2, c.getMembers()->size() ); ASSERT_EQ( 1, c.getMembers()->at( 0 ) ); ASSERT_EQ( 100, c.getMembers()->at( 1 ) ); return; }