TEST_F(ModelEditorFixture, InspectorDialog_Remove1Object)
{
  Model model;
  Space space1(model);
  Space space2(model);
  EXPECT_EQ(2u, model.numObjects());

  boost::shared_ptr<InspectorDialog> inspectorDialog(new InspectorDialog(model));

  boost::shared_ptr<TestButton> button(new TestButton);

  bool connected = QObject::connect(button.get(), SIGNAL(clicked(bool)),
                                    inspectorDialog.get(), SLOT(onPushButtonDelete(bool)));
  ASSERT_TRUE(connected);

  EXPECT_TRUE(inspectorDialog->setIddObjectType(Space::iddObjectType()));
  EXPECT_EQ(Space::iddObjectType(), inspectorDialog->iddObjectType());

  std::vector<Handle> handles;
  handles.push_back(space1.handle());
  EXPECT_TRUE(inspectorDialog->setSelectedObjectHandles(handles));
  ASSERT_EQ(1u, inspectorDialog->selectedObjectHandles().size());
  EXPECT_EQ(space1.handle(), inspectorDialog->selectedObjectHandles()[0]);

  button->doClick();

  ASSERT_EQ(1u, model.numObjects());
  EXPECT_EQ(space2.handle(), model.objects(true)[0].handle());

  EXPECT_EQ(Space::iddObjectType(), inspectorDialog->iddObjectType());
  ASSERT_EQ(1u, inspectorDialog->selectedObjectHandles().size());
  EXPECT_EQ(space2.handle(), inspectorDialog->selectedObjectHandles()[0]);
}
TEST_F(ModelEditorFixture, InspectorDialog_ModelObjectRemove)
{
  Model model;
  LightsDefinition definition(model);
  Lights lights(definition);
  ASSERT_EQ(2u, model.numObjects());
  EXPECT_EQ(definition.handle(), model.objects(true)[0].handle());
  EXPECT_EQ(lights.handle(), model.objects(true)[1].handle());

  boost::shared_ptr<InspectorDialog> inspectorDialog(new InspectorDialog(model));

  boost::shared_ptr<TestButton> button(new TestButton);

  bool connected = QObject::connect(button.get(), SIGNAL(clicked(bool)),
                                    inspectorDialog.get(), SLOT(onPushButtonDelete(bool)));
  ASSERT_TRUE(connected);

  EXPECT_TRUE(inspectorDialog->setIddObjectType(LightsDefinition::iddObjectType()));
  EXPECT_EQ(LightsDefinition::iddObjectType(), inspectorDialog->iddObjectType());

  std::vector<Handle> handles;
  handles.push_back(definition.handle());
  EXPECT_TRUE(inspectorDialog->setSelectedObjectHandles(handles));
  ASSERT_EQ(1u, inspectorDialog->selectedObjectHandles().size());
  EXPECT_EQ(definition.handle(), inspectorDialog->selectedObjectHandles()[0]);

  button->doClick();

  ASSERT_EQ(0u, model.numObjects());
}