Skip to content

Commit 799da68

Browse files
committed
test: 更新单元测试
1 parent f39658a commit 799da68

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

test/UnitTest/Services/BluetoothServiceTest.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// See the LICENSE file in the project root for more information.
44
// Maintainer: Argo Zhang([email protected]) Website: https://www.blazor.zone
55

6+
using System;
67
using System.Globalization;
78

89
namespace UnitTest.Services;
@@ -115,6 +116,11 @@ public async Task ReadValue_null()
115116
var characteristic = await service.GetCharacteristic("battery_level");
116117
Assert.NotNull(characteristic);
117118

119+
mi = characteristic.GetType().GetMethod("OnError");
120+
Assert.NotNull(mi);
121+
mi.Invoke(characteristic, ["test"]);
122+
Assert.Equal("test", characteristic.ErrorMessage);
123+
118124
v = await characteristic.ReadValue();
119125
Assert.Null(v);
120126
}
@@ -312,13 +318,43 @@ public async Task Notifications_Ok()
312318
var characteristic = await service.GetCharacteristic("battery_level");
313319
Assert.NotNull(characteristic);
314320

321+
byte[]? buffer = null;
315322
var notification = await characteristic.StartNotifications(payload =>
316323
{
324+
buffer = payload;
317325
return Task.CompletedTask;
318326
});
319327
Assert.True(notification);
320328

329+
await characteristic.StartNotifications(payload => { return Task.CompletedTask; });
330+
Assert.Equal("the battery_level characteristic already started.", characteristic.ErrorMessage);
331+
332+
// trigger notification
333+
var mi = characteristic.GetType().GetMethod("OnNotification");
334+
Assert.NotNull(mi);
335+
Assert.Null(buffer);
336+
mi.Invoke(characteristic, ["battery_level", "1"u8.ToArray()]);
337+
Assert.NotNull(buffer);
338+
321339
notification = await characteristic.StopNotifications();
322340
Assert.True(notification);
341+
342+
Context.JSInterop.Setup<bool?>("startNotifications", matcher => matcher.Arguments[0]?.ToString()?.StartsWith("bb_bt_") ?? false).SetResult(null);
343+
await characteristic.StartNotifications(payload =>
344+
{
345+
return Task.CompletedTask;
346+
});
347+
notification = await characteristic.StopNotifications();
348+
Assert.False(notification);
349+
350+
Context.JSInterop.Setup<bool?>("startNotifications", matcher => matcher.Arguments[0]?.ToString()?.StartsWith("bb_bt_") ?? false).SetResult(true);
351+
Context.JSInterop.Setup<bool?>("stopNotifications", matcher => matcher.Arguments[0]?.ToString()?.StartsWith("bb_bt_") ?? false).SetResult(null);
352+
await characteristic.StartNotifications(payload =>
353+
{
354+
return Task.CompletedTask;
355+
});
356+
notification = await characteristic.StopNotifications();
357+
Assert.False(notification);
358+
323359
}
324360
}

0 commit comments

Comments
 (0)