void Chaser_Test::tap() { Scene* s1 = new Scene(m_doc); m_doc->addFunction(s1); Scene* s2 = new Scene(m_doc); m_doc->addFunction(s2); Scene* s3 = new Scene(m_doc); m_doc->addFunction(s3); Scene* s4 = new Scene(m_doc); m_doc->addFunction(s4); Chaser* c = new Chaser(m_doc); c->addStep(s1->id()); c->addStep(s2->id()); c->addStep(s3->id()); c->addStep(s4->id()); m_doc->addFunction(c); c->preRun(m_doc->masterTimer()); QVERIFY(c->m_runner != NULL); QCOMPARE(c->duration(), uint(0)); c->write(m_doc->masterTimer(), QList<Universe*>()); QCOMPARE(c->m_runner->m_next, false); c->tap(); QTest::qWait(MasterTimer::tick()); c->tap(); QCOMPARE(c->m_runner->m_next, true); }
void Chaser_Test::createCopy() { Doc doc(this); Chaser* c1 = new Chaser(m_doc); c1->setName("First"); c1->setFadeInSpeed(42); c1->setFadeOutSpeed(69); c1->setDuration(1337); c1->setDirection(Chaser::Backward); c1->setRunOrder(Chaser::SingleShot); c1->addStep(ChaserStep(20)); c1->addStep(ChaserStep(30)); c1->addStep(ChaserStep(40)); doc.addFunction(c1); QVERIFY(c1->id() != Function::invalidId()); Function* f = c1->createCopy(&doc); QVERIFY(f != NULL); QVERIFY(f != c1); QVERIFY(f->id() != c1->id()); Chaser* copy = qobject_cast<Chaser*> (f); QVERIFY(copy != NULL); QVERIFY(copy->fadeInSpeed() == 42); QVERIFY(copy->fadeOutSpeed() == 69); QVERIFY(copy->duration() == 1337); QVERIFY(copy->direction() == Chaser::Backward); QVERIFY(copy->runOrder() == Chaser::SingleShot); QVERIFY(copy->steps().size() == 3); QVERIFY(copy->steps().at(0) == ChaserStep(20)); QVERIFY(copy->steps().at(1) == ChaserStep(30)); QVERIFY(copy->steps().at(2) == ChaserStep(40)); }
void Chaser_Test::write() { Fixture* fxi = new Fixture(m_doc); fxi->setAddress(0); fxi->setUniverse(0); fxi->setChannels(1); m_doc->addFixture(fxi); Chaser* c = new Chaser(m_doc); c->setDuration(MasterTimer::tick() * 10); m_doc->addFunction(c); Scene* s1 = new Scene(m_doc); s1->setValue(fxi->id(), 0, 255); m_doc->addFunction(s1); c->addStep(s1->id()); Scene* s2 = new Scene(m_doc); s2->setValue(fxi->id(), 0, 127); m_doc->addFunction(s2); c->addStep(s2->id()); MasterTimer timer(m_doc); QVERIFY(c->isRunning() == false); QVERIFY(c->stopped() == true); c->start(&timer); timer.timerTick(); for (uint i = MasterTimer::tick(); i < c->duration(); i += MasterTimer::tick()) { timer.timerTick(); QVERIFY(c->isRunning() == true); QVERIFY(c->stopped() == false); QVERIFY(s1->isRunning() == true); QVERIFY(s2->isRunning() == false); } for (uint i = 0; i < c->duration(); i += MasterTimer::tick()) { timer.timerTick(); QVERIFY(c->isRunning() == true); QVERIFY(c->stopped() == false); QVERIFY(s1->isRunning() == false); QVERIFY(s2->isRunning() == true); } }