NAME

OPCUA::Open62541::Test::Client - run open62541 client for testing

SYNOPSIS

use OPCUA::Open62541::Test::Client;
use Test::More tests => OPCUA::Open62541::Test::Client::planning();

my $client = OPCUA::Open62541::Test::Client->new();

DESCRIPTION

In a module test start and run an open62541 OPC UA client that connects to a server. The client is considered part of the test and will write to the TAP stream.

OPCUA::Open62541::Test::Client::planning

Return the number of tests results that running one client will create. Add this to your number of planned tests.

METHODS

$client = OPCUA::Open62541::Test::Client->new(%args);

Create a new test client instance.

$args{port}

Required port number of the server.

$args{logfile}

Logs to the specified file instead of "client.log" in the current directory.

$args{timeout}

Maximum time the client will run during iterate. Defaults to 10 seconds.

$client->url($url)

Optionally set the url. Returns the url created from localhost and port. Must be called after start() for that.

$client->start()

Configure the client.

$client->run()

Connect the client to the open62541 server.

$client->iterate(\$end, $ident)

Run the iterate function of the client for up to 5 seconds. This has to be done to complete asynchronous calls. The scalar reference to $end is used to finish the iteration loop successfully when set to true in a callback. Otherwise the loop terminates with failure if the status of client run_iterate() is not good or after calling it 50 times. If $ident is set, it is used to identify a passed or failed test. This one test is not included in planning().

If $end is undef, the iteration will continue until the client has disconnected. If $end is an array or hash reference, the iteration will continue until the array or hash is empty. If $end is a code reference, the iteration will continue until the function call returns true.

$client->stop()

Disconnect the client from the open62541 server.

SEE ALSO

OPCUA::Open62541, OPCUA::Open62541::Test::Server, OPCUA::Open62541::Test::Logger

AUTHORS

Alexander Bluhm <bluhm@genua.de>,

COPYRIGHT AND LICENSE

Copyright (c) 2020 Alexander Bluhm

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

Thanks to genua GmbH, https://www.genua.de/ for sponsoring this work.