void ConnectionCharacterintegration::test_connected() { // Dispatching an external op from the character should have no effect // if the external mind is already in place. m_character->linkExternal(m_connection); ASSERT_NOT_NULL(m_character->m_externalMind); ExternalMind * em = dynamic_cast<ExternalMind*>(m_character->m_externalMind); ASSERT_NOT_NULL(em); ASSERT_TRUE(em->isLinked()); ASSERT_TRUE(em->isLinkedTo(m_connection)); Router * saved_em = m_character->m_externalMind; RootOperation op; op->setFrom(m_character->getId()); m_connection->externalOperation(op, *m_connection); ASSERT_TRUE(!m_Link_send_sent.isValid()); ASSERT_NOT_EQUAL(m_logEvent_logged, TAKE_CHAR); ASSERT_NOT_NULL(m_character->m_externalMind); ASSERT_EQUAL(m_character->m_externalMind, saved_em); em = dynamic_cast<ExternalMind*>(m_character->m_externalMind); ASSERT_NOT_NULL(em); ASSERT_TRUE(em->isLinked()); ASSERT_TRUE(em->isLinkedTo(m_connection)); }
void ConnectionCharacterintegration::test_unlinked() { // Dispatching an external op from the character if the external mind is // already in place, but is not linked to a connection should link it // back up. m_character->linkExternal(m_connection); ASSERT_NOT_NULL(m_character->m_externalMind); ExternalMind * em = dynamic_cast<ExternalMind*>(m_character->m_externalMind); ASSERT_NOT_NULL(em); ASSERT_TRUE(em->isLinked()); ASSERT_TRUE(em->isLinkedTo(m_connection)); // Remove the link from the external mind back to m_connection em->linkUp(0); ASSERT_TRUE(!em->isLinked()); Router * saved_em = m_character->m_externalMind; RootOperation op; op->setFrom(m_character->getId()); m_connection->externalOperation(op, *m_connection); ASSERT_NOT_NULL(m_character->m_externalMind); ASSERT_EQUAL(m_character->m_externalMind, saved_em); em = dynamic_cast<ExternalMind*>(m_character->m_externalMind); ASSERT_NOT_NULL(em); ASSERT_TRUE(em->isLinked()); ASSERT_TRUE(em->isLinkedTo(m_connection)); ASSERT_TRUE(m_Link_send_sent.isValid()); ASSERT_EQUAL(m_logEvent_logged, TAKE_CHAR); }
void ConnectionCharacterintegration::test_connect_up() { // Dispatching an external op from the character should cause it to // get connected up with an external mind RootOperation op; op->setFrom(m_character->getId()); ASSERT_NULL(m_character->m_externalMind); m_connection->externalOperation(op, *m_connection); ASSERT_NOT_NULL(m_character->m_externalMind); ExternalMind * em = dynamic_cast<ExternalMind*>(m_character->m_externalMind); ASSERT_NOT_NULL(em); ASSERT_TRUE(em->isLinked()); ASSERT_TRUE(em->isLinkedTo(m_connection)); ASSERT_TRUE(m_Link_send_sent.isValid()); ASSERT_EQUAL(m_Link_send_sent->getClassNo(), Atlas::Objects::Operation::INFO_NO); ASSERT_EQUAL(m_logEvent_logged, TAKE_CHAR); }