PHP Classes

File: tests/Unit/Event/AlarmEventDeductionTest.php

Recommend this page to a friend!
  Packages of Gianfrancesco Aurecchia   OPC UA Client   tests/Unit/Event/AlarmEventDeductionTest.php   Download  
File: tests/Unit/Event/AlarmEventDeductionTest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: OPC UA Client
Control devices that support the OPC UA protocol
Author: By
Last change:
Date: 19 days ago
Size: 4,148 bytes
 

Contents

Class file image Download
<?php

declare(strict_types=1);

use
PhpOpcua\Client\Event\AlarmActivated;
use
PhpOpcua\Client\Event\AlarmDeactivated;
use
PhpOpcua\Client\Event\AlarmEventReceived;
use
PhpOpcua\Client\Event\AlarmSeverityChanged;
use
PhpOpcua\Client\Event\LimitAlarmExceeded;
use
PhpOpcua\Client\Event\OffNormalAlarmTriggered;
use
PhpOpcua\Client\Testing\MockClient;
use
PhpOpcua\Client\Types\NodeId;

describe('Alarm Event Classes', function () {

   
it('creates AlarmEventReceived with all fields', function () {
       
$client = MockClient::create();
       
$eventType = NodeId::numeric(0, 2955);
       
$time = new DateTimeImmutable();

       
$event = new AlarmEventReceived(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
eventFields: [],
           
severity: 500,
           
sourceName: 'Sensor1',
           
message: 'Temperature high',
           
eventType: $eventType,
           
time: $time,
        );

       
expect($event->client)->toBe($client);
       
expect($event->subscriptionId)->toBe(1);
       
expect($event->clientHandle)->toBe(2);
       
expect($event->severity)->toBe(500);
       
expect($event->sourceName)->toBe('Sensor1');
       
expect($event->message)->toBe('Temperature high');
       
expect($event->eventType)->toBe($eventType);
       
expect($event->time)->toBe($time);
    });

   
it('creates AlarmEventReceived with nullable fields', function () {
       
$client = MockClient::create();
       
$event = new AlarmEventReceived(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
eventFields: [],
        );

       
expect($event->severity)->toBeNull();
       
expect($event->sourceName)->toBeNull();
       
expect($event->message)->toBeNull();
       
expect($event->eventType)->toBeNull();
       
expect($event->time)->toBeNull();
    });

   
it('creates AlarmActivated with severity and message', function () {
       
$client = MockClient::create();
       
$event = new AlarmActivated(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
sourceName: 'TempSensor',
           
severity: 800,
           
message: 'Over threshold',
        );

       
expect($event->sourceName)->toBe('TempSensor');
       
expect($event->severity)->toBe(800);
       
expect($event->message)->toBe('Over threshold');
    });

   
it('creates AlarmDeactivated without severity', function () {
       
$client = MockClient::create();
       
$event = new AlarmDeactivated(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
sourceName: 'TempSensor',
           
message: 'Back to normal',
        );

       
expect($event->sourceName)->toBe('TempSensor');
       
expect($event->message)->toBe('Back to normal');
    });

   
it('creates AlarmSeverityChanged with severity value', function () {
       
$client = MockClient::create();
       
$event = new AlarmSeverityChanged(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
sourceName: 'Pump1',
           
severity: 900,
        );

       
expect($event->severity)->toBe(900);
       
expect($event->sourceName)->toBe('Pump1');
    });

   
it('creates LimitAlarmExceeded with limit state', function () {
       
$client = MockClient::create();
       
$event = new LimitAlarmExceeded(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
sourceName: 'Level',
           
limitState: 'HighHigh',
           
severity: 1000,
        );

       
expect($event->limitState)->toBe('HighHigh');
       
expect($event->severity)->toBe(1000);
    });

   
it('creates OffNormalAlarmTriggered', function () {
       
$client = MockClient::create();
       
$event = new OffNormalAlarmTriggered(
           
client: $client,
           
subscriptionId: 1,
           
clientHandle: 2,
           
sourceName: 'Switch1',
           
severity: 500,
        );

       
expect($event->sourceName)->toBe('Switch1');
       
expect($event->severity)->toBe(500);
    });

});