We use proprietary and third party's cookies to improve your experience and our services, identifying your Internet Browsing preferences on our website; develop analytic activities and display advertising based on your preferences. If you keep browsing, you accept its use. You can get more information on our Cookie Policy
Cookies Policy
Metadata Preprocessing - Unit Testing Plan - FIWARE Forge Wiki

Metadata Preprocessing - Unit Testing Plan

From FIWARE Forge Wiki

Jump to: navigation, search

Contents

Common Information about tests

The MetadataProcessor implements the FI-WARE GE Open Specifications associated with the Metadata Preprocessing GE described at FIWARE.ArchitectureDescription.Data.MetadataPreprocessing. The unit tests described in the following are responsible for verifying the correct functionality of the modules of the MetadataProcessor that implement the features of the Metadata Preprocessing GE. The tests need a running instance of the MetadataProcessor as described in the Metadata Preprocessing - Installation and Administration Guide.

Unit Test 1

Tested Features

Test description

This unit test verifies the general availability of the MetadataProcessor service by requesting the current version for the software/service through the getVersion function.

Step 1: Start the MetadataProcessor service.

Step 2: Send the following REST command.

GET //127.0.0.1/mdp/version HTTP/1.1
Accept: application/xml

Step 3: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml

<VersionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Version>3.2</Version>
</VersionResponse>

Step 4: Stop and restart the MetadataProcessor service.

Unit Test 2

Tested Features

Test description

This unit test verifies the listInstances function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Send the following REST command.

GET //127.0.0.1/mdp/instances HTTP/1.1
Accept: application/xml

Step 3: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml
 
<InstancesResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Instances />
</InstancesResponse>

Step 4: Stop and restart the MetadataProcessor service.

Unit Test 3

Tested Features

Test description

This unit test verifies the createInstance function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Send the following REST command.

POST //127.0.0.1/mdp/instances HTTP/1.1
Accept: application/xml

Step 3: Verify the response. The received response should match this sample:

HTTP/1.1 201 Created
Content-Type: application/xml

<InstancesResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Instances>
    <InstanceInfo>
      <Id>0</Id>
      <MetadataUri>rtsp://127.0.0.1:1554/0</MetadataUri>
      <SourceUri>rtsp://127.0.0.1:1554/stream0</SourceUri>
    </InstanceInfo></Instances>
  </InstancesResponse>

Step 4: Stop and restart the MetadataProcessor service.

Unit Test 4

Tested Features

Test description

This unit test verifies the listInstances function of the RESTful interface, where this time one processing unit is available.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end.

Step 3: Send the following REST command.

GET //127.0.0.1/mdp/instances HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml
 
<InstancesResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Instances>
    <InstanceInfo>
      <Id>0</Id>
      <MetadataUri>rtsp://127.0.0.1:1554/0</MetadataUri>
      <SourceUri>rtsp://127.0.0.1:1554/stream0</SourceUri>
    </InstanceInfo>
  </Instances>
</InstancesResponse>

Step 5: Stop and restart the MetadataProcessor service.

Unit Test 5

Tested Features

Test description

This unit test verifies the getMetadata function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

 
GET //127.0.0.1/mdp/instances/0/metadata HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

 
HTTP/1.1 200 OK
Content-Type: application/xml
 
<MetadataResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <InstanceId>0</InstanceId>
  <MetadataUri>rtsp://127.0.0.1:1554/0</MetadataUri>
</MetadataResponse>

Step 5: Stop and restart the MetadataProcessor service.

Unit Test 6

Tested Features

Test description

This unit test verifies the startInstance function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

PUT //127.0.0.1/mdp/instances/0?action=start HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml

<ActionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Action>Start</Action>
  <Id>0</Id>
</ActionResponse>

Step 5: Stop and restart the MetadataProcessor service.

Unit Test 7

Tested Features

Test description

This unit test verifies the function stopInstance of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

PUT //127.0.0.1/mdp/instances/0?action=stop HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml

<ActionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Action>Stop</Action>
  <Id>0</Id>
</ActionResponse>

Step 5: Stop and restart the MetadataProcessor service.

Unit Test 8

Tested Features

Test description

This unit test verifies the destroyInstance function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

DELETE //127.0.0.1/mdp/instances/0 HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml

<ActionResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Action>Delete</Action>
  <Id>0</Id>
</ActionResponse>

Step 5: Stop and restart the MetadataProcessor service.


Unit Test 9

Tested Features

Test description

This unit test verifies the configureInstance function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 3 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

PUT //127.0.0.1/mdp/instances/0/config HTTP/1.1
Content-Type: application/xml
Content-Length: 544
<Configuration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Config>
    <ProcessorCsv2Xml>
      <Enabled>false</Enabled>
      <FieldDelimiter>SEMICOLON</FieldDelimiter>
      <GroupEmptyFields>true</GroupEmptyFields>
      <NumHeaderRows>1</NumHeaderRows>
      <SkipHeaderRows>false</SkipHeaderRows>
      <TextDelimiter>SINGLE_QUOTE</TextDelimiter>
    </ProcessorCsv2Xml>
    <ProcessorXslt>
      <Enabled>true</Enabled>
      <Stylesheet>
         Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjwhLS0gcGVyc29ubGlzdC54bWwgdG8gb2JqZWN0bGlzdC54bWw
         gLS0+Cjx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiIHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbn
         Nmb3JtIj4KICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvcGVyc29uX2xpc3QiPgogICAgPG9iamVjdF9saXN0PgogICAgICA8eHNsOmFwc
         Gx5LXRlbXBsYXRlcyAvPgogICAgPC9vYmplY3RfbGlzdD4KICA8L3hzbDp0ZW1wbGF0ZT4KICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJw
         ZXJzb24iPgogICAgPG9iamVjdCB0eXBlPSJwZXJzb24iPgogICAgICA8aWQ+CiAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2V
         sZWN0PSJpZCIgLz4KICAgICAgPC9pZD4KICAgICAgPGxhYmVsPgogICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibm
         FtZSIgLz4KICAgICAgPC9sYWJlbD4KICAgIDwvb2JqZWN0PgogIDwveHNsOnRlbXBsYXRlPgo8L3hzbDpzdHlsZXNoZWV0Pgo=
       </Stylesheet>
     </ProcessorXslt>
     <SourceURI>rtsp://127.0.0.1:1554/stream0</SourceURI>
  </Config>
  <Id>0</Id>
</Configuration>

Step 4: Verify the response. The received response should match this sample (please note the stylesheet may differ due to whitespace, after Base64 decoding it represents the stylesheet that was used for put configuration, however):

HTTP/1.1 200 OK
Content-Type: application/xml
 
<ConfigurationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" mlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Config>
    <ProcessorCsv2Xml>
      <Enabled>false</Enabled>
      <FieldDelimiter>SEMICOLON</FieldDelimiter>
      <GroupEmptyFields>true</GroupEmptyFields>
      <NumHeaderRows>1</NumHeaderRows>
      <SkipHeaderRows>true</SkipHeaderRows>
      <TextDelimiter>SINGLE_QUOTE</TextDelimiter>
    </ProcessorCsv2Xml>
    <ProcessorXslt>
      <Enabled>true</Enabled>
      <Stylesheet>
        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBwZXJzb25saXN0LnhtbCB0byBvYmplY3RsaXN0LnhtbCAtLT4KPHhzb
        DpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iPgogIDx4c2w6dG
        VtcGxhdGUgbWF0Y2g9Ii9wZXJzb25fbGlzdCI+CiAgICA8b2JqZWN0X2xpc3Q+CiAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIC8+CiAgICA8L29
        iamVjdF9saXN0PgogIDwveHNsOnRlbXBsYXRlPgogIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InBlcnNvbiI+CiAgICA8b2JqZWN0IHR5cGU9InBlcnNv
        biI+CiAgICAgIDxpZD4KICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImlkIiAvPgogICAgICA8L2lkPgogICAgICA8bGFiZWw+C
        iAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJuYW1lIiAvPgogICAgICA8L2xhYmVsPgogICAgPC9vYmplY3Q+CiAgPC94c2w6dG
        VtcGxhdGU+CjwveHNsOnN0eWxlc2hlZXQ+
      </Stylesheet>
    </ProcessorXslt>
    <SourceURI>rtsp://127.0.0.1:1554/stream0</SourceURI>
  </Config>
  <Id>0</Id>
</ConfigurationResponse>

Step 5: Stop and restart the MetadataProcessor service.

Unit Test 10

Tested Features

Test description

This unit test verifies the getConfig function of the RESTful interface.

Step 1: Start the MetadataProcessor service.

Step 2: Rerun Unit Test 9 without restarting the MetadataProcessor service at the end. Note the instance ID.

Step 3: Send the following REST command.

GET //127.0.0.1/mdp/instances/0/config HTTP/1.1
Accept: application/xml

Step 4: Verify the response. The received response should match this sample:

HTTP/1.1 200 OK
Content-Type: application/xml
 
<ConfigurationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Config>
    <ProcessorCsv2Xml>
      <Enabled>true</Enabled>
      <FieldDelimiter>SEMICOLON</FieldDelimiter>
      <GroupEmptyFields>true</GroupEmptyFields>
      <NumHeaderRows>1</NumHeaderRows>
      <SkipHeaderRows>true</SkipHeaderRows>
      <TextDelimiter>SINGLE_QUOTE</TextDelimiter>
    </ProcessorCsv2Xml>
    <ProcessorXslt>
      <Enabled>false</Enabled>
      <Stylesheet>
        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBwZXJzb25saXN0LnhtbCB0byBvYmplY3RsaXN0LnhtbCAtLT4KPHhzb
        DpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iPgogIDx4c2w6dG
        VtcGxhdGUgbWF0Y2g9Ii9wZXJzb25fbGlzdCI+CiAgICA8b2JqZWN0X2xpc3Q+CiAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIC8+CiAgICA8L29
        iamVjdF9saXN0PgogIDwveHNsOnRlbXBsYXRlPgogIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InBlcnNvbiI+CiAgICA8b2JqZWN0IHR5cGU9InBlcnNv
        biI+CiAgICAgIDxpZD4KICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImlkIiAvPgogICAgICA8L2lkPgogICAgICA8bGFiZWw+C
        iAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJuYW1lIiAvPgogICAgICA8L2xhYmVsPgogICAgPC9vYmplY3Q+CiAgPC94c2w6dG
        VtcGxhdGU+CjwveHNsOnN0eWxlc2hlZXQ+
      </Stylesheet>
    </ProcessorXslt>
    <SourceURI>rtsp://127.0.0.1:1554/stream0</SourceURI>
    </Config>
    <Id>0</Id>
  </ConfigurationResponse>

Step 5: Stop and restart the MetadataProcessor service.


Unit Test 11

Tested Features

Test description

This unit test verifies the correct behavior of the processing component of the MetadataProcessor, i.e., metadata transformation and metadata filtering using XSLT.

Step 1: Create a processing unit as described in Unit Test 3 without restarting the MetadataProcessor service at the end.

Step 2: Configure the processing of the processing unit as described in Unit Test 9 without restarting the MetadataProcessor service at the end.

Step 3: Connect an RTSP/RTP output stream as described in Unit Test 5 without restarting the MetadataProcessor service at the end.

Step 4: The following piece of metadata is sent to the processing engine of the MetadataProcessor by the testing framework through the inbound metadata interface (i.e., RTP connection).

<?xml version="1.0" encoding="UTF-8"?>
<person_list>
  <person>
    <id>09</id>
    <name>Guard01</name>
    <status>ClearanceLevel04</status>
  </person>
</person_list>

If the transformation is performed correctly by the MetadataProcessor, the following answer is received through the outbound metadata interface (i.e., RTP connection) and output by the testing framework.

<?xml version="1.0" encoding="UTF-8"?>
<object_list>
  <object type="person">
    <id>09</id>
    <label>Guard01</label>
  </object>
</object_list>

Unit Test 12

Tested Features

Test description

This unit test verifies the correct behavior of the processing component of the MetadataProcessor, especially conversion from the comma separated value (CSV) format to the XML format .

Step 1: Create a processing unit as described in Unit Test 3 without restarting the MetadataProcessor service at the end.

Step 2: Configure the processing of the processing unit: Therefore, the following command is send by the testing framework to the running MetadataProcessor.

PUT //127.0.0.1/mdp/instances/0/config HTTP/1.1
Content-Type: application/xml
Content-Length: 544
<Configuration xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Config>
    <ProcessorCsv2Xml>
      <Enabled>true</Enabled>
      <FieldDelimiter>COMMA</FieldDelimiter>
      <GroupEmptyFields>true</GroupEmptyFields>
      <NumHeaderRows>1</NumHeaderRows>
      <SkipHeaderRows>false</SkipHeaderRows>
      <TextDelimiter>SINGLE_QUOTE</TextDelimiter>
    </ProcessorCsv2Xml>
    <ProcessorXslt>
      <Enabled>false</Enabled>
      <Stylesheet />
    </ProcessorXslt>
     <SourceURI>rtsp://127.0.0.1:1554/stream0</SourceURI>
  </Config>
  <Id>0</Id>
</Configuration>

If the configuration of the MetadataProcessor is done correctly, the following answer is received and output by the testing framework.

HTTP/1.1 200 OK
Content-Type: application/xml
 
<ConfigurationResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" mlns="http://schemas.datacontract.org/2004/07/mdpp.rest.Dto">
  <Config>
    <ProcessorCsv2Xml>
      <Enabled>ture</Enabled>
      <FieldDelimiter>COMMA</FieldDelimiter>
      <GroupEmptyFields>true</GroupEmptyFields>
      <NumHeaderRows>1</NumHeaderRows>
      <SkipHeaderRows>false</SkipHeaderRows>
      <TextDelimiter>SINGLE_QUOTE</TextDelimiter>
    </ProcessorCsv2Xml>
    <ProcessorXslt>
      <Enabled>false</Enabled>
      <Stylesheet />
    </ProcessorXslt>
    <SourceURI>rtsp://127.0.0.1:1554/stream0</SourceURI>
  </Config>
  <Id>0</Id>
</ConfigurationResponse>

Step 3: Connect an RTSP/RTP output stream as described in Unit Test 5 without restarting the MetadataProcessor service at the end.

Step 4: The following piece of metadata in the CSV format is sent to the processing engine of the MetadataProcessor by the testing framework through the inbound metadata interface (i.e., RTP connection) of the MetadataProcessor.

’Heading Column A’,’Headling Column B’
DataA,DataB

If the transformation is performed correctly by the MetadataProcessor, the following output in the XML format is received by the testing framework through the outbound metadata interface (i.e., RTP connection) of the MetadataProcessor.

<table>
  <tr>
    <th>Heading Column A</th>
    <th>Heading Column B</th>
  </tr>
  <tr>
    <td>DataA</td>
    <td>DataB</td>
  </tr>
</table>

Unit Test 13

Tested Features

Test description

This test (which is a test suite actually) contains a number of NUnit tests used inside the development environment. A build server is used to check the unit tests on a regular basis. Most tests map to specific features as mentioned above while some tests relate to generic functionality of the device. Currently, there are 110 tests, all of which are required to be successful at all times. The single tests are not explained in detail, because they verify the correct behavior of the internal functions of the GEi. Therefore, note that this unit test is done during compile time and cannot be reproduced by external testing of the MetadataProcessor.

<libmdmag> (100 tests), Success
  libmdmag.metahandler (5 tests), Success
    TestData (5 tests), Success
      AppendBuffer, Success
      ByteBufferIsStringBuffer, Success
      CopyConstructor, Success
      EmptyConstructor, Success
      FillBufferWithOffset, Success
  libmdmag.metahandler.device (4 tests), Success
    TestMdMagTickerRtsp (2 tests), Success
      TestConfigureTickerRtsp, Success
      TestInstantiateTickerRtsp, Success
    TestMdMagXmlConverter (2 tests), Success
      TestConfigureXmlConverter, Success
      TestInstantiateXmlConverter, Success
  libmdmag.metahandler.filter.generic (3 tests), Success
    TestMdFilterAssembleFrame (2 tests), Success
      TestAssembleOnePacket, Success
      TestAssembleTwoPackets, Success
    TestMdFilterXslt (1 test), Success
      TestTransform, Success
  libmdmag.metahandler.filter.networker (14 tests), Success
    TestMdFilterRtspSession (14 tests), Success
      TestBuildXmlGetMetadataUri, Success
      TestDescribeRequestString, Success
      TestDescribeResponse, Success
      TestKeepaliveRequestString, Success
      TestKeepaliveResponse, Success
      TestOptionsRequestString, Success
      TestOptionsResponse, Success
      TestParseDescribe_absoluteControl, Success
      TestParseDescribe_absoluteControlEqualUrl, Success
      TestParseDescribe_relativeControl, Success
      TestPlayRequestString, Success
      TestPlayResponse, Success
      TestSetupRequestString, Success
      TestTeardownRequestString, Success
  libmdmag.metahandler.filter.parser (6 tests), Success
    MdFilterCsv2XmlTest (6 tests), Success
      TestCheck4StringDelim, Success
      TestGetColHeader, Success
      TestParseCsv, Success
      TestParseCsVextraHeader, Success
      TestSetColHeader, Success
      TestSetup, Success
  libmdmag.tools (12 tests), Success
    IniConfigTest (12 tests), Success
      TestIniConfigAddOverwriteKey, Success
      TestIniConfigAddSection, Success
      TestIniConfigExistsError, Success
      TestIniConfigGetKeys, Success
      TestIniConfigGetKeysError, Success
      TestIniConfigGetSectionAsDic, Success
      TestIniConfigGetSectionAsDicError, Success
      TestIniConfigKeyEnumerate, Success
      TestIniConfigKeys, Success
      TestIniConfigKeysCaseInsensitive, Success
      TestIniConfigSave, Success
      TestIniConfigSections, Success
  libmdmag.tools.frtpcs (43 tests), Success
    TestProvider (4 tests), Success
      provider_disconnectSession, Success
      provider_getSdp_noUrlMatch, Success
      provider_getSdp_urlMatch, Success
      provider_isConnectedSession, Success
    TestProviderManager (6 tests), Success
      providerManager_createProvider_mustBeginWithSlash, Success
      providerManager_createProvider_noIdTwice, Success
      providerManager_destroyProvider, Success
      providerManager_getSdp, Success
      providerManager_isValidProvider, Success
      providerManager_isValidProvider_Error, Success
    TestRtspRequest (23 tests), Success
      rtsprequest_badRequest, Success
      rtsprequest_describeRequest, Success
      rtsprequest_describeResponse, Success
      rtsprequest_getParameterRequest, Success
      rtsprequest_getParameterResponse, Success
      rtsprequest_getRequestCSeq, Success
      rtsprequest_getRequestCSeqError, Success
      rtsprequest_getRequestSession, Success
      rtsprequest_getRequestUrl, Success
      rtsprequest_getRequestUrlError, Success
      rtsprequest_optionsRequest, Success
      rtsprequest_optionsResponse, Success
      rtsprequest_pauseRequest, Success
      rtsprequest_pauseResponse, Success
      rtsprequest_playRequest, Success
      rtsprequest_playResponse, Success
      rtsprequest_setupRequest, Success
      rtsprequest_setupRequestClientRtpPort, Success
      rtsprequest_setupRequestClientRtspPort, Success
      rtsprequest_setupResponse, Success
      rtsprequest_teardownRequest, Success
      rtsprequest_teardownResponse, Success
      rtsprequest_validUrl, Success
    TestSession (3 tests), Success
      session_mConvertTimevalToRtp, Success
      session_mWriteRtpHeader, Success
      session_setupResponse, Success
    TestSessionManager (7 tests), Success
      sessionmanager_createNewSession, Success
      sessionmanager_createNewSession_uniqueSessionId, Success
      sessionmanager_endsession, Success
      sessionmanager_getRequestUrlProvider, Success
      sessionmanager_getRequestUrlProvider_relative, Success
      sessionmanager_isvalidsession, Success
      sessionmanager_isvalidsession_error, Success
  libmdmag.tools.stama (13 tests), Success
    TestCstate (7 tests), Success
      TestConstructorSafeties, Success
      TestName, Success
      TestNextStates, Success
      TestNextStatesAny, Success
      TestNextStatesBlocked, Success
      TestSetTimerSafeties, Success
      TestTimerCancelling, Success
    TestSimpleStaMa (6 tests), Success
      TestActivationWithChangeState, Success
      TestActivationWithGetCurrentState, Success
      TestActivationWithStartupState, Success
      TestSimpleStateMachine, Success
      TestStamaInactiveUponInit, Success
      TestTimer, Success
Personal tools
Create a book