You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnosygnu_xowa/100_core/src/gplx/Gfo_evt_mgr_tst.java

68 lines
2.1 KiB

/*
XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0.
You may use XOWA according to either of these licenses as is most appropriate
for your project on a case-by-case basis.
The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/
package gplx;
import org.junit.*;
public class Gfo_evt_mgr_tst {
@Before public void setup() {
pub = make_(); sub = make_();
} MockEvObj pub, sub;
@Test public void Basic() {
Gfo_evt_mgr_.Sub_same(pub, "ev1", sub);
Gfo_evt_mgr_.Pub_val(pub, "ev1", "val1");
sub.tst_Handled("val1");
}
@Test public void None() {// make sure no subscribers does not cause exception
Gfo_evt_mgr_.Sub_same(pub, "ev1", sub);
Gfo_evt_mgr_.Pub_val(pub, "ev2", "val1"); //ev2 does not exist
sub.tst_Handled();
}
@Test public void Lnk() {
MockEvObj mid = make_();
mid.Evt_mgr().Lnk(pub);
Gfo_evt_mgr_.Sub_same(mid, "ev1", sub);
Gfo_evt_mgr_.Pub_val(pub, "ev1", "val1");
sub.tst_Handled("val1");
}
@Test public void RlsSub() {
this.Basic();
Gfo_evt_mgr_.Rls_sub(sub);
Gfo_evt_mgr_.Pub_val(pub, "ev1", "val1");
sub.tst_Handled();
}
@Test public void RlsPub() {
this.Basic();
Gfo_evt_mgr_.Rls_sub(pub);
Gfo_evt_mgr_.Pub_val(pub, "ev1", "val1");
sub.tst_Handled();
}
MockEvObj make_() {return new MockEvObj();}
}
class MockEvObj implements Gfo_evt_itm {
public Gfo_evt_mgr Evt_mgr() {return eventMgr;} Gfo_evt_mgr eventMgr;
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
handled.Add(m.ReadStr("v"));
return this;
}
List_adp handled = List_adp_.New();
public void tst_Handled(String... expd) {
Tfds.Eq_ary_str(expd, handled.To_str_ary());
handled.Clear();
}
public MockEvObj(){eventMgr = new Gfo_evt_mgr(this);}
}