void CompositionTest::has_instance_with_his_parent_component()
{
  ICompositionInstance *compInstance = new CompositionInstanceMock();
  Composition *composition = new Composition(compInstance);

  CPPUNIT_ASSERT_EQUAL(compInstance, composition->getSelfInstance());

  CompositionFactory::dispose(composition);
}
void CompositionTest::delete_selfInstance_port_removes_dependant_connections()
{
  Component *comp1 = ComponentFactory::produce("comp1", {"in"}, {"out"});
  Composition *composition = new Composition(new CompositionInstance(comp1));
  comp1->setImplementation(composition);

  const auto inst = composition->getSelfInstance();
  auto portIn = inst->getPorts()[0];
  auto portOut = inst->getPorts()[1];
  auto connection = ConnectionFactory::produce(portIn, portOut);
  composition->getConnections().add(connection);

  ComponentPort *port = comp1->getPorts()[0];
  CPPUNIT_ASSERT_EQUAL(size_t(1), composition->getConnections().size());
  comp1->getPorts().remove(port);
  CPPUNIT_ASSERT_EQUAL(size_t(0), composition->getConnections().size());

  ComponentFactory::dispose(comp1);
}