X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=include%2Fanna%2Ftesting%2FTestStep.hpp;h=4442f66aa684be8b46d6bdf97b6468a47a3b589c;hp=782ce55ccafbdb0d6f16a62ad997fa60ceb07200;hb=2e2f6d4e2ffe1c8b86c812807f0e501ab78f56f9;hpb=88cd8ffad493971ae4704ed007d8430c1d3fd7eb diff --git a/include/anna/testing/TestStep.hpp b/include/anna/testing/TestStep.hpp index 782ce55..4442f66 100644 --- a/include/anna/testing/TestStep.hpp +++ b/include/anna/testing/TestStep.hpp @@ -16,7 +16,7 @@ // Project #include -#include +#include #include @@ -57,7 +57,7 @@ class TestStep { void initialize(TestCase *testCase); public: - struct Type { enum _v { Unconfigured, Timeout, Sendxml2e, Sendxml2c, Delay, Wait, Cmd }; }; + struct Type { enum _v { Unconfigured, Timeout, Sendxml2e, Sendxml2c, Delay, Wait, Cmd, IpLimit }; }; static const char* asText(const Type::_v type) throw(); TestStep(TestCase *testCase) : a_message(true), a_messageCodec(NULL), a_executed(false) { initialize(testCase); } @@ -67,6 +67,7 @@ class TestStep { const Type::_v &getType() const throw() { return a_type; } const int &getNumber() const throw() { return a_number; } bool isCompleted() const throw() { return a_completed; } + anna::Millisecond getLapseMs() const throw() { return a_endTimestamp - a_beginTimestamp; } bool execute() throw(); void complete() throw(); @@ -110,11 +111,12 @@ class TestStepTimeout : public TestStep { bool do_execute() throw(); void do_complete() throw(); // timeout reached, test case failed void do_reset() throw(); + void cancelTimer() throw(); anna::xml::Node* asXML(anna::xml::Node* parent) throw(); }; -class TestStepSendxml : public TestStep { +class TestStepSendDiameterXml : public TestStep { protected: // possible end points: @@ -127,11 +129,11 @@ class TestStepSendxml : public TestStep { bool a_expired; // a_endTimestamp will be the expiration reception timestamp public: - TestStepSendxml(TestCase *testCase) : TestStep(testCase), + TestStepSendDiameterXml(TestCase *testCase) : TestStep(testCase), a_expired(false), a_originHost(NULL), a_waitForRequestStepNumber(-1) {;} - ~TestStepSendxml() {;} + ~TestStepSendDiameterXml() {;} // setter & getters void setOriginHost(anna::diameter::comm::OriginHost *host) throw() { a_originHost = host; } @@ -148,14 +150,14 @@ class TestStepSendxml : public TestStep { anna::xml::Node* asXML(anna::xml::Node* parent) throw(); }; -class TestStepSendxml2e : public TestStepSendxml { +class TestStepSendDiameterXml2e : public TestStepSendDiameterXml { public: - TestStepSendxml2e(TestCase *testCase) : TestStepSendxml(testCase) { a_type = Type::Sendxml2e; } + TestStepSendDiameterXml2e(TestCase *testCase) : TestStepSendDiameterXml(testCase) { a_type = Type::Sendxml2e; } }; -class TestStepSendxml2c : public TestStepSendxml { +class TestStepSendDiameterXml2c : public TestStepSendDiameterXml { public: - TestStepSendxml2c(TestCase *testCase) : TestStepSendxml(testCase) { a_type = Type::Sendxml2c; } + TestStepSendDiameterXml2c(TestCase *testCase) : TestStepSendDiameterXml(testCase) { a_type = Type::Sendxml2c; } }; @@ -174,23 +176,24 @@ class TestStepDelay : public TestStep { bool do_execute() throw(); void do_complete() throw(); // delay reached void do_reset() throw(); + void cancelTimer() throw(); anna::xml::Node* asXML(anna::xml::Node* parent) throw(); }; -class TestStepWait : public TestStep { +class TestStepWaitDiameter : public TestStep { - TestCondition a_condition; + TestDiameterCondition a_condition; anna::diameter::comm::ClientSession *a_clientSession; anna::diameter::comm::ServerSession *a_serverSession; public: - TestStepWait(TestCase *testCase) : TestStep(testCase) { + TestStepWaitDiameter(TestCase *testCase) : TestStep(testCase) { a_type = Type::Wait; a_clientSession = NULL; a_serverSession = NULL; } - ~TestStepWait() {;} + ~TestStepWaitDiameter() {;} // setter & getters void setCondition(bool fromEntity, @@ -205,7 +208,7 @@ class TestStepWait : public TestStep { anna::diameter::comm::ClientSession *getClientSession() const throw() { return a_clientSession; } anna::diameter::comm::ServerSession *getServerSession() const throw() { return a_serverSession; } - const TestCondition &getCondition() const throw() { return a_condition; } + const TestDiameterCondition &getCondition() const throw() { return a_condition; } //void setMsgDataBlock(const anna::DataBlock &db) throw() { a_message = db; } bool fulfilled(const anna::DataBlock &db/*, bool matchSessionId = true*/) throw(); const anna::DataBlock &getMsgDataBlock() const throw() { return a_message; } @@ -256,6 +259,25 @@ class TestStepCmd : public TestStep { anna::xml::Node* asXML(anna::xml::Node* parent) throw(); }; + +class TestStepIpLimit : public TestStep { + + unsigned int a_ipLimit; + + public: + TestStepIpLimit(TestCase *testCase) : TestStep(testCase), a_ipLimit(1) { a_type = Type::IpLimit; } + + // setter & getters + void setIpLimit(unsigned int limit) throw() { a_ipLimit = limit; } + unsigned int getIpLimit() const throw() { return a_ipLimit; } + + // virtuals + bool do_execute() throw(); + void do_complete() throw(); + void do_reset() throw() {;} + anna::xml::Node* asXML(anna::xml::Node* parent) throw(); +}; + } }