mirror of https://github.com/gnosygnu/xowa
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.
68 lines
2.1 KiB
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);}
|
|
}
|