def test_find_doesnt_return_object_made_with_new(self):
   bs = self.create_backing_store({})
   manager = BackedObjectManager(bs)
   manager.initialize()
   war_machine = manager.new("War Machine")
   war_machine.set_backed_value("identity", "James Rhodes")
   self.assertIsNone(manager.find("War Machine"))
 def test_find_returns_same_object_between_calls(self):
   bs = self.create_backing_store({ "Iron Man": {} })
   manager = BackedObjectManager(bs)
   manager.initialize()
   first_result = manager.find("Iron Man")
   self.assertIsNotNone(first_result)
   second_result = manager.find("Iron Man")
   self.assertIsNotNone(second_result)
   self.assertIs(first_result, second_result)
 def test_all(self):
   bs = self.create_backing_store({
     "Iron Man": {},
     "War Machine": {},
   })
   manager = BackedObjectManager(bs)
   manager.initialize()
   all_objects = manager.all()
   self.assertIs(len(all_objects), 2)
   obj1 = all_objects[0]
   obj2 = all_objects[1]
   self.assertFalse(obj1.identifier == obj2.identifier)
   self.assertIn(obj1.identifier, ["Iron Man", "War Machine"])
   self.assertIn(obj2.identifier, ["Iron Man", "War Machine"])
  def test_initialize_loads_from_store(self):
    bs = self.create_backing_store({
      "Iron Man": {
        "identity": "Tony Stark",
      },
      "War Machine": {
        "identity": "James Rhodes",
        "alias": "Rhodey",
      },
    })
    manager = BackedObjectManager(bs)
    manager.initialize()
    iron_man = manager.find("Iron Man")
    war_machine = manager.find("War Machine")

    self.assertIsNotNone(iron_man)
    self.assertEquals(iron_man.identifier, "Iron Man")
    self.assertEquals(iron_man.backed_value("identity"), "Tony Stark")

    self.assertIsNotNone(war_machine)
    self.assertEquals(war_machine.identifier, "War Machine")
    self.assertEquals(war_machine.backed_value("identity"), "James Rhodes")
    self.assertEquals(war_machine.backed_value("alias"), "Rhodey")
 def test_find_returns_non_none_with_valid_identifier(self):
   bs = self.create_backing_store({ "Iron Man": {} })
   manager = BackedObjectManager(bs)
   manager.initialize()
   self.assertIsNotNone(manager.find("Iron Man"))
 def test_find_returns_object_made_with_create(self):
   bs = self.create_backing_store({})
   manager = BackedObjectManager(bs)
   manager.initialize()
   war_machine = manager.create("War Machine")
   self.assertEquals(manager.find("War Machine"), war_machine)