Beispiel #1
0
		it("Message", function() {
			var handler = new mq.Chain([

				function(v) {
					return {};
				},
				function(v) {
					assert.isObject(v.result);
					return "aaa" + v.result;
				}
			]);

			var req = new mq.Message();
			mq.invoke(handler, req);
			assert.equal("aaa[object Object]", req.result);

			var handler = new mq.Chain([

				function(v) {
					v.params[0] = {};
				},
				function(v) {
					assert.isObject(v.params[0]);
				}
			]);

			var req = new mq.Message();
			req.params.push("aaasssssssssssssss");
			mq.invoke(handler, req);
		});
Beispiel #2
0
	it("await", function() {
		var n = 100;

		mq.invoke(mq.jsHandler(function(r) {
			var aw = mq.await();

			function delayend() {
				assert.equal(n, 100);
				n = 200;
				aw.end();
			}
			delayend.start();

			return aw;
		}), m);
		assert.equal(n, 200);

		n = 300;
		mq.invoke(mq.jsHandler(function(r) {
			var aw = mq.await();

			assert.equal(n, 300);
			n = 400;
			aw.end();

			return aw;
		}), m);
		assert.equal(n, 400);
	});
Beispiel #3
0
		it("path to value", function() {
			var r = new mq.Routing({
				"^/api/a$": function(v) {},
				"^/api/a(/.*)$": function(v) {}
			});

			var m = new mq.Message();
			m.value = '/api/a';
			mq.invoke(r, m);
			assert.equal('', m.value);

			m.value = '/api/a/test';
			mq.invoke(r, m);
			assert.equal('/test', m.value);
		});
Beispiel #4
0
		it("simple path", function() {
			n = 0;
			m.value = 'a';
			mq.invoke(r, m);
			assert.equal(1, n);

			n = 0;
			m.value = 'b';
			mq.invoke(r, m);
			assert.equal(2, n);

			n = 0;
			m.value = 'c';
			mq.invoke(r, m);
			assert.equal(4, n);
		});
Beispiel #5
0
		it("regex path", function() {
			m.value = 'params/123.a456.html';
			mq.invoke(r, m);
			assert.equal("param: 123,a456", n);

			m.value = 'params0/999.html';
			mq.invoke(r, m);
			assert.equal("param0", n);

			m.value = 'params1/789.html';
			mq.invoke(r, m);
			assert.equal("param1: 789", n);

			m.value = 'params2/123.b456.html';
			mq.invoke(r, m);
			assert.equal("param2: 123,b456", n);

			m.value = 'params3/123.b456c789.html';
			mq.invoke(r, m);
			assert.equal("param3: 123,b456c789", n);
		});
Beispiel #6
0
		it("params", function() {
			function chain_params(v, p1, p2) {
				assert.equal(v.value, '');
				assert.equal(v.params.length, 2);
				assert.equal(v.params[0], "123");
				assert.equal(v.params[1], "b1234");
				assert.equal(p1, "123");
				assert.equal(p2, "b1234");
			}

			var chain1 = new mq.Chain([chain_params, chain_params,
				mq.jsHandler(chain_params)
			]);

			m.value = '';
			m.params.resize(2);
			m.params[0] = '123';
			m.params[1] = 'b1234';
			mq.invoke(chain1, m);
		});
Beispiel #7
0
	function invoke(url, method, params, headers, d) {
		if (method && !params && !headers) {
			headers = method;
			method = null;
		}

		var req = new http.Request();
		req.address = req.value = url;
		if (headers) req.setHeader(headers);

		if (d) {
			req.body.write(d);
			req.body.rewind();
			req.method = 'POST';
		} else if (method || params) {
			req.setHeader("Content-Type", "application/json, charset=utf-8;");
			req.body.write(new Buffer(JSON.stringify({
				method: method,
				params: params,
				id: 1234
			})));
		}

		mq.invoke(handler, req);

		req.response.body.rewind();

		function hander(req) {
			var s1 = req.response.body.readAll() || String("");
			var s = s1.toString();
			var extend = {
				toBuffer: function() {
					return s1;
				},
				toString: function() {
					return s;
				},
				toJSON: function() {
					return JSON.parse(s);
				},
				toName: function() {
					return s.substr(21, s.length - 21 - 11);
				},
				toNameJSON: function() {
					return JSON.parse(s.substr(21, s.length - 21 - 11));
				},
				toDefine: function() {
					var result;
					new Function("define", s)(function(val) {
						result = val;
					});
					return result;
				}
			}

			return {
				get: function(receiver, name) {
					return extend[name] || req.response[name];
				}
			}
		}

		return Proxy.create(hander(req));
	}
Beispiel #8
0
			assert.throws(function() {
				mq.invoke(function(v) {
					return 100;
				}, v);
			});
Beispiel #9
0
		it("recursion invoke", function() {
			n = 0;
			mq.invoke(jv, v);
			assert.equal(7, n);
		});
Beispiel #10
0
			assert.throws(function() {
				mq.invoke(r, m);
			});