~ya-bo-ng/juju-gui/test-prototype

« back to all changes in this revision

Viewing changes to test/test_model.js

Merged trunk, resolved conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"use strict";
 
2
 
1
3
(function () {
2
 
 
 
4
 
3
5
 
4
6
describe("juju models", function() {
5
7
    var Y, models;
10
12
            done();
11
13
        });
12
14
    });
13
 
 
14
 
 
 
15
 
 
16
 
15
17
    it("must be able to create charm", function() {
16
18
        var charm = new models.Charm({id: "cs:precise/mysql-6"});
17
19
        charm.get("id").should.equal("cs:precise/mysql-6");
35
37
           names[1].should.equal("logger");
36
38
       });
37
39
 
38
 
             
39
 
    it("service unit list should be able to get units of a given service", 
 
40
 
 
41
    it("service unit list should be able to get units of a given service",
40
42
       function() {
41
43
        var sl = new models.ServiceList();
42
44
        var sul = new models.ServiceUnitList();
55
57
           wp1 = new models.ServiceUnit({id:"wordpress/1"});
56
58
        sul.add([wp0, wp1]);
57
59
        wp0.get("service").should.equal("wordpress");
58
 
       
 
60
 
59
61
       sul.get_units_for_service(mysql, true).getAttrs(["id"]).id.should.eql(
60
62
           ["mysql/0", "mysql/1"]);
61
63
       sul.get_units_for_service(wordpress, true).getAttrs(
62
64
           ["id"]).id.should.eql(["wordpress/0", "wordpress/1"]);
63
65
    });
64
66
 
65
 
    it("service units should get service from unit name when missing", 
 
67
    it("service unit list should be able to aggregate unit statuses",
 
68
       function() {
 
69
        var sl = new models.ServiceList();
 
70
        var sul = new models.ServiceUnitList();
 
71
        var mysql = new models.Service({id: "mysql"});
 
72
        var wordpress = new models.Service({id: "wordpress"});
 
73
        sl.add([mysql, wordpress]);
 
74
 
 
75
        var my0 = new models.ServiceUnit({id:"mysql/0", agent_state: 'pending'}),
 
76
           my1 = new models.ServiceUnit({id:"mysql/1", agent_state: 'pending'});
 
77
 
 
78
        sul.add([my0, my1]);
 
79
 
 
80
        var wp0 = new models.ServiceUnit({id:"wordpress/0", agent_state: 'pending'}),
 
81
           wp1 = new models.ServiceUnit({id:"wordpress/1", agent_state: 'error'});
 
82
        sul.add([wp0, wp1]);
 
83
 
 
84
        sul.get_informative_states_for_service(mysql).should.eql(
 
85
           {'pending': 2});
 
86
        sul.get_informative_states_for_service(wordpress).should.eql(
 
87
           {'pending': 1, 'error': 1});
 
88
    });
 
89
 
 
90
    it("service units should get service from unit name when missing",
66
91
       function() {
67
92
           var service_unit = new models.ServiceUnit({id: "mysql/0"});
68
93
           var service = service_unit.get("service");
69
94
           service.should.equal("mysql");
70
95
       });
71
 
             
 
96
 
72
97
    });
73
98
})();