/** * publishInterface()メソッドのテストです。 * * <p>次の点をテストします。 * * <ol> * <li>引数で渡したNameValueオブジェクトのインタフェースタイプが、ポートのそれと一致しない場合:<br> * Interface情報が取得されないことを確認する。 * <li>引数で渡したNameValueオブジェクトのインタフェースタイプが、ポートのそれと一致する場合:<br> * Interface情報を取得でき、それが期待値と一致することを確認する。 * </ol> */ public void testPublishInterface() { InPortProvider provider = new InPortProviderImplMock( "DATA_TYPE", "INTERFACE_TYPE", "DATA_FLOW_TYPE", "SUBSCRIPTION_TYPE"); NVListHolder prop = NVListHolderFactory.create(); provider.publishInterfaceProfile(prop); // (1) インタフェースタイプ不一致の場合: NVListHolder prop_dummy = NVListHolderFactory.clone(prop); for (int i = 0; i < prop_dummy.value.length; i++) { if (prop_dummy.value[i].name.equals("dataport.interface_type")) { // インタフェースタイプが一致しないように、書き換える prop_dummy.value[i].value.insert_string("DUMMY"); } } provider.publishInterface(prop_dummy); // インタフェース情報が取得されないことを確認する assertEquals(-1, NVUtil.find_index(prop_dummy, "PROPERTY_NAME1")); assertEquals(-1, NVUtil.find_index(prop_dummy, "PROPERTY_NAME2")); // (2) インタフェースタイプ一致の場合: provider.publishInterface(prop); // インタフェース情報が取得されることを確認する assertFalse(-1 == NVUtil.find_index(prop, "PROPERTY_NAME1")); assertFalse(-1 == NVUtil.find_index(prop, "PROPERTY_NAME2")); }