Completed
Push — master ( 388b15...ff9125 )
by Arthur
02:02
created

WebSocketClientTest::it_closes_connection()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace WSSCTEST;
4
5
use PHPUnit\Framework\TestCase;
6
use WSSC\Exceptions\BadOpcodeException;
7
use WSSC\WebSocketClient;
8
9
class WebSocketClientTest extends TestCase
10
{
11
12
    const WS_SCHEME = 'ws://';
13
    const WS_HOST   = 'localhost';
14
    const WS_PORT   = ':8000';
15
    const WS_URI    = '/notifications/messanger/vkjsndfvjn23243';
16
17
    private $url;
18
19
    public function setUp()/* The :void return type declaration that should be here would cause a BC issue */
20
    {
21
        $this->url = self::WS_SCHEME . self::WS_HOST . self::WS_PORT . self::WS_URI;
22
    }
23
24
    /**
25
     * @test
26
     * @throws \Exception
27
     */
28
    public function is_client_connected()
29
    {
30
        $recvMsg = '{"user_id" : 123}';
31
        $client = new WebSocketClient($this->url);
32
        try {
33
            $client->send($recvMsg);
34
        } catch (BadOpcodeException $e) {
35
            echo 'Couldn`t sent: ' . $e->getMessage();
36
        }
37
        $recv = $client->receive();
38
        $this->assertEquals($recv, $recvMsg);
39
    }
40
41
    /**
42
     * @test
43
     * @throws \Exception
44
     */
45
    public function it_sends_with_headers_via_constructor()
46
    {
47
        $recvMsg = '{"user_id" : 123}';
48
        $client = new WebSocketClient($this->url, [
49
            'timeout'       => 15,
50
            'fragment_size' => 8096,
51
            'headers'       => [
52
                'X-Custom-Header' => 'Foo Bar Baz',
53
            ],
54
        ]);
55
56
        try {
57
            $client->send($recvMsg);
58
        } catch (BadOpcodeException $e) {
59
            echo 'Couldn`t sent: ' . $e->getMessage();
60
        }
61
        $recv = $client->receive();
62
        $this->assertEquals($recv, $recvMsg);
63
    }
64
65
    /**
66
     * @test
67
     * @throws \Exception
68
     */
69
    public function it_sends_with_headers_via_setters()
70
    {
71
        $recvMsg = '{"user_id" : 123}';
72
        $client = new WebSocketClient($this->url);
73
        $client->setFragmentSize(8096)->setTimeout(15)->setHeaders([
74
            'X-Custom-Header' => 'Foo Bar Baz'
75
        ]);
76
77
        try {
78
            $client->send($recvMsg);
79
        } catch (BadOpcodeException $e) {
80
            echo 'Couldn`t sent: ' . $e->getMessage();
81
        }
82
        $recv = $client->receive();
83
        $this->assertEquals($recv, $recvMsg);
84
    }
85
86
    /**
87
     * @test
88
     * @throws \Exception
89
     */
90
    public function it_closes_connection()
91
    {
92
        $client = new WebSocketClient($this->url);
93
94
        $closeRecv = $client->close();
95
        $this->assertEmpty($closeRecv);
96
    }
97
}
98