10
11
var SocketStub = function () {
11
12
this.messages = [];
13
14
this.close = function() {
14
console.log('close stub');
15
console.log('close stub');
18
19
this.transient_close = function() {
22
23
this.open = function() {
26
27
this.msg = function(m) {
27
console.log("serializing env msg", m);
28
this.onmessage({'data': Y.JSON.stringify(m)});
28
console.log("serializing env msg", m);
29
this.onmessage({'data': Y.JSON.stringify(m)});
31
32
this.last_message = function(m) {
32
return this.messages[this.messages.length-1];
33
return this.messages[this.messages.length-1];
35
36
this.send = function(m) {
36
console.log('socket send', m);
37
this.messages.push(Y.JSON.parse(m));
37
console.log('socket send', m);
38
this.messages.push(Y.JSON.parse(m));
40
41
this.onclose = function() {};
42
43
this.onopen = function() {};
46
47
describe("Juju environment", function() {
47
48
var juju, conn, env, msg;
49
50
before(function (done) {
50
Y = YUI(GlobalConfig).use(
51
"base", "node", "json-parse", "juju-env",
53
conn = new SocketStub();
54
juju = Y.namespace("juju");
55
env = new juju.Environment({conn: conn});
51
Y = YUI(GlobalConfig).use(
52
"base", "node", "json-parse", "juju-env",
54
conn = new SocketStub();
55
juju = Y.namespace("juju");
56
env = new juju.Environment({conn: conn});
62
63
after(function(done) {
67
68
it("can deploy a service", function(done) {
68
env.deploy('precise/mysql');
69
msg = conn.last_message();
70
msg.op.should.equal('deploy');
71
msg.charm_url.should.equal('precise/mysql');
69
env.deploy('precise/mysql');
70
msg = conn.last_message();
71
msg.op.should.equal('deploy');
72
msg.charm_url.should.equal('precise/mysql');
75
76
it("can add a unit", function(done) {
76
env.add_unit('mysql', 3);
77
msg = conn.last_message();
78
msg.op.should.equal('add_unit');
79
msg.service_name.should.equal('mysql');
80
msg.num_units.should.equal(3);
77
env.add_unit('mysql', 3);
78
msg = conn.last_message();
79
msg.op.should.equal('add_unit');
80
msg.service_name.should.equal('mysql');
81
msg.num_units.should.equal(3);
84
85
it("can accept a callback on its methods", function(done) {
85
env.get_charm('cs:precise/mysql', function(result) {
86
console.log('invoked', result);
87
result.op.should.equal('get_charm')
88
result.result.id.should.equal('cs:precise/mysql');
86
env.get_charm('cs:precise/mysql', function(result) {
87
console.log('invoked', result);
88
result.op.should.equal('get_charm');
89
result.result.id.should.equal('cs:precise/mysql');
92
msg = conn.last_message()
93
console.log('msg', msg);
96
'request_id': msg.request_id,
97
'result': {'id': 'cs:precise/mysql'}});
93
msg = conn.last_message();
94
console.log('msg', msg);
97
'request_id': msg.request_id,
98
'result': {'id': 'cs:precise/mysql'}});