Commit 7078319

mo khan <mo@mokhan.ca>
2016-12-05 20:08:56
start to build container.
1 parent c47a242
Changed files (2)
app
infrastructure
app/infrastructure/__tests__/container_spec.js
@@ -0,0 +1,19 @@
+import Container from '../container';
+
+describe("Container", () => {
+  let subject = null;
+
+  beforeEach(() => {
+    subject = new Container();
+  });
+
+  describe("#resolve", () => {
+    class Item { }
+
+    it("can resolve an instance", () => {
+      subject.register('eventAggregator', () => { return new Item() })
+
+      expect(subject.resolve('eventAggregator')).toBeInstanceOf(Item);
+    });
+  });
+});
app/infrastructure/container.js
@@ -0,0 +1,13 @@
+export default class Container {
+  constructor() {
+    this.components = {};
+  }
+
+  register(key, factory) {
+    this.components[key] = factory;
+  }
+
+  resolve(key) {
+    return this.components[key]();
+  }
+}