1+ // Licensed to the .NET Foundation under one or more agreements.
2+ // The .NET Foundation licenses this file to you under the MIT license.
3+
4+ using Microsoft . AspNetCore . Components ;
5+ using Microsoft . AspNetCore . Components . Infrastructure ;
6+ using Microsoft . Extensions . DependencyInjection ;
7+
8+ namespace Microsoft . AspNetCore . Components . WebView ;
9+
10+ public class ComponentsWebViewServiceCollectionExtensionsTests
11+ {
12+ [ Fact ]
13+ public void AddBlazorWebView_RegistersPersistentComponentStateServices ( )
14+ {
15+ // Arrange
16+ var services = new ServiceCollection ( ) ;
17+
18+ // Act
19+ services . AddBlazorWebView ( ) ;
20+ var serviceProvider = services . BuildServiceProvider ( ) ;
21+
22+ // Assert
23+ var persistenceManager = serviceProvider . GetService < ComponentStatePersistenceManager > ( ) ;
24+ var persistentState = serviceProvider . GetService < PersistentComponentState > ( ) ;
25+
26+ Assert . NotNull ( persistenceManager ) ;
27+ Assert . NotNull ( persistentState ) ;
28+ Assert . Same ( persistenceManager . State , persistentState ) ;
29+ }
30+
31+ [ Fact ]
32+ public void AddBlazorWebView_RegistersServicesAsScoped ( )
33+ {
34+ // Arrange
35+ var services = new ServiceCollection ( ) ;
36+
37+ // Act
38+ services . AddBlazorWebView ( ) ;
39+
40+ // Assert
41+ var persistenceManagerDescriptor = services . FirstOrDefault ( s => s . ServiceType == typeof ( ComponentStatePersistenceManager ) ) ;
42+ var persistentStateDescriptor = services . FirstOrDefault ( s => s . ServiceType == typeof ( PersistentComponentState ) ) ;
43+
44+ Assert . NotNull ( persistenceManagerDescriptor ) ;
45+ Assert . NotNull ( persistentStateDescriptor ) ;
46+ Assert . Equal ( ServiceLifetime . Scoped , persistenceManagerDescriptor . Lifetime ) ;
47+ Assert . Equal ( ServiceLifetime . Scoped , persistentStateDescriptor . Lifetime ) ;
48+ }
49+ }
0 commit comments