1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import QtQuick 2.0
import QtTest 1.0
import QuickFlux 1.1
TestCase {
name : "MiddlewareList"
ActionCreator {
id: actions
signal test1();
}
MiddlewareList {
id: middlewares
Middleware {
id: middleware1
property var actions : new Array
function dispatch(type , message) {
middleware1.actions.push(type);
next(type , message);
}
}
Middleware {
id: middleware2
function dispatch(type , message) {
next(type , message);
next(type , message);
}
}
}
AppListener {
id: listener1
property var actions : new Array
onDispatched: {
listener1.actions.push(type);
}
}
function test_basic() {
compare(middlewares.data.length, 2);
compare(middleware1._nextCallback, undefined); // It won't set the next function until the middleware is applied
middlewares.apply(actions);
compare(typeof middleware1._nextCallback, "function");
compare(typeof middleware2._nextCallback, "function");
actions.test1();
compare(middleware1.actions, ["test1"]);
compare(listener1.actions, ["test1","test1"]);
}
}
|