62
makeCharmStore: function() {
62
_cached_charms: (function() {
65
'wordpress', 'mysql', 'puppet', 'haproxy', 'mediawiki', 'hadoop'];
66
Y.Array.each(names, function(name) {
67
charms[name] = Y.JSON.parse(
68
Y.io('data/' + name + '-charmdata.json', {sync: true})
65
// In order to return multiple charms from the fake store we need to
66
// monkeypatch this method.
67
var TestCharmStore = Y.Base.create('test-charm-store',
68
Y.juju.CharmStore, [], {
69
loadByPath: function(path, options) {
70
this.get('datasource').sendRequest({
73
success: function(io_request) {
74
var charmName = path.split('/')[2];
75
Y.Array.some(io_request.response.results, function(result) {
76
var data = Y.JSON.parse(result.responseText);
77
if (data.name === charmName) {
78
options.success(data);
83
failure: options.failure
74
TestCharmStore: Y.Base.create(
75
'test-charm-store', Y.juju.CharmStore, [], {
76
loadByPath: function(path, options) {
77
var charmName = path.split('/')[2];
78
var found = Y.Array.some(
79
Y.Object.values(jujuTests.utils._cached_charms),
81
if (data.name === charmName) {
82
options.success(data);
89
var charmStore = new TestCharmStore(
90
{datasource: new Y.DataSource.Local({source: data})});
91
var setCharms = function(names) {
92
Y.Array.each(names, function(name) {
93
data.push(Y.io('data/' + name + '-charmdata.json', {sync: true}));
96
setCharms(['wordpress', 'mysql', 'puppet', 'haproxy', 'mediawiki',
98
return {charmStore: charmStore, setCharm: setCharms};
101
93
makeFakeBackendWithCharmStore: function() {
102
var charmStoreData = jujuTests.utils.makeCharmStore();
103
94
var fakebackend = new Y.juju.environments.FakeBackend(
104
{charmStore: charmStoreData.charmStore});
95
{charmStore: new jujuTests.utils.TestCharmStore()});
105
96
fakebackend.login('admin', 'password');
106
return {fakebackend: fakebackend, setCharm: charmStoreData.setCharm};