aboutsummaryrefslogtreecommitdiff
path: root/Tools/Hazel-Networking/Hazel.UnitTests/StatisticsTests.cs
blob: 8452a8288488f992e0e243055d493e55a1a90fde (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Hazel.UnitTests
{
    [TestClass]
    public class StatisticsTests
    {
        [TestMethod]
        public void SendTests()
        {
            ConnectionStatistics statistics = new ConnectionStatistics();

            statistics.LogUnreliableSend(10);

            Assert.AreEqual(1, statistics.MessagesSent);
            Assert.AreEqual(1, statistics.UnreliableMessagesSent);
            Assert.AreEqual(0, statistics.ReliableMessagesSent);
            Assert.AreEqual(0, statistics.FragmentedMessagesSent);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(0, statistics.HelloMessagesSent);

            Assert.AreEqual(10, statistics.DataBytesSent);

            statistics.LogReliableSend(5);

            Assert.AreEqual(2, statistics.MessagesSent);
            Assert.AreEqual(1, statistics.UnreliableMessagesSent);
            Assert.AreEqual(1, statistics.ReliableMessagesSent);
            Assert.AreEqual(0, statistics.FragmentedMessagesSent);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(0, statistics.HelloMessagesSent);

            Assert.AreEqual(15, statistics.DataBytesSent);

            statistics.LogFragmentedSend(6);

            Assert.AreEqual(3, statistics.MessagesSent);
            Assert.AreEqual(1, statistics.UnreliableMessagesSent);
            Assert.AreEqual(1, statistics.ReliableMessagesSent);
            Assert.AreEqual(1, statistics.FragmentedMessagesSent);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(0, statistics.HelloMessagesSent);

            Assert.AreEqual(21, statistics.DataBytesSent);

            statistics.LogAcknowledgementSend();

            Assert.AreEqual(4, statistics.MessagesSent);
            Assert.AreEqual(1, statistics.UnreliableMessagesSent);
            Assert.AreEqual(1, statistics.ReliableMessagesSent);
            Assert.AreEqual(1, statistics.FragmentedMessagesSent);
            Assert.AreEqual(1, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(0, statistics.HelloMessagesSent);

            Assert.AreEqual(21, statistics.DataBytesSent);

            statistics.LogHelloSend();

            Assert.AreEqual(5, statistics.MessagesSent);
            Assert.AreEqual(1, statistics.UnreliableMessagesSent);
            Assert.AreEqual(1, statistics.ReliableMessagesSent);
            Assert.AreEqual(1, statistics.FragmentedMessagesSent);
            Assert.AreEqual(1, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(1, statistics.HelloMessagesSent);

            Assert.AreEqual(21, statistics.DataBytesSent);
            
            Assert.AreEqual(0, statistics.MessagesReceived);
            Assert.AreEqual(0, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(0, statistics.ReliableMessagesReceived);
            Assert.AreEqual(0, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(0, statistics.HelloMessagesReceived);

            Assert.AreEqual(0, statistics.DataBytesReceived);
            Assert.AreEqual(0, statistics.TotalBytesReceived);

            statistics.LogPacketSend(11);
            Assert.AreEqual(11, statistics.TotalBytesSent);
        }

        [TestMethod]
        public void ReceiveTests()
        {
            ConnectionStatistics statistics = new ConnectionStatistics();

            statistics.LogUnreliableReceive(10, 11);

            Assert.AreEqual(1, statistics.MessagesReceived);
            Assert.AreEqual(1, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(0, statistics.ReliableMessagesReceived);
            Assert.AreEqual(0, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(0, statistics.HelloMessagesReceived);

            Assert.AreEqual(10, statistics.DataBytesReceived);
            Assert.AreEqual(11, statistics.TotalBytesReceived);

            statistics.LogReliableReceive(5, 8);

            Assert.AreEqual(2, statistics.MessagesReceived);
            Assert.AreEqual(1, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(1, statistics.ReliableMessagesReceived);
            Assert.AreEqual(0, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(0, statistics.HelloMessagesReceived);

            Assert.AreEqual(15, statistics.DataBytesReceived);
            Assert.AreEqual(19, statistics.TotalBytesReceived);

            statistics.LogFragmentedReceive(6, 10);

            Assert.AreEqual(3, statistics.MessagesReceived);
            Assert.AreEqual(1, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(1, statistics.ReliableMessagesReceived);
            Assert.AreEqual(1, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(0, statistics.HelloMessagesReceived);

            Assert.AreEqual(21, statistics.DataBytesReceived);
            Assert.AreEqual(29, statistics.TotalBytesReceived);

            statistics.LogAcknowledgementReceive(4);

            Assert.AreEqual(4, statistics.MessagesReceived);
            Assert.AreEqual(1, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(1, statistics.ReliableMessagesReceived);
            Assert.AreEqual(1, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(1, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(0, statistics.HelloMessagesReceived);

            Assert.AreEqual(21, statistics.DataBytesReceived);
            Assert.AreEqual(33, statistics.TotalBytesReceived);

            statistics.LogHelloReceive(7);

            Assert.AreEqual(5, statistics.MessagesReceived);
            Assert.AreEqual(1, statistics.UnreliableMessagesReceived);
            Assert.AreEqual(1, statistics.ReliableMessagesReceived);
            Assert.AreEqual(1, statistics.FragmentedMessagesReceived);
            Assert.AreEqual(1, statistics.AcknowledgementMessagesReceived);
            Assert.AreEqual(1, statistics.HelloMessagesReceived);

            Assert.AreEqual(21, statistics.DataBytesReceived);
            Assert.AreEqual(40, statistics.TotalBytesReceived);

            Assert.AreEqual(0, statistics.MessagesSent);
            Assert.AreEqual(0, statistics.UnreliableMessagesSent);
            Assert.AreEqual(0, statistics.ReliableMessagesSent);
            Assert.AreEqual(0, statistics.FragmentedMessagesSent);
            Assert.AreEqual(0, statistics.AcknowledgementMessagesSent);
            Assert.AreEqual(0, statistics.HelloMessagesSent);

            Assert.AreEqual(0, statistics.DataBytesSent);
            Assert.AreEqual(0, statistics.TotalBytesSent);
        }
    }
}