Escali License control 1
IndexPageLeaderBoardComponentTests.razor
Gå til dokumentasjonen til denne filen.
1@inject IMapper _mapper
2@inherits TestContext
3@using Escali.LicenseControl.Client.Components.IndexPageComponents
4
5@code {
6 /// <summary>
7 /// Creates an In Memory Database.
8 /// </summary>
9 /// <returns>DataContext</returns>
10 private async Task<DataContext> GetDatabaseContext()
11 {
12 var options = new DbContextOptionsBuilder<DataContext>()
13 .UseInMemoryDatabase(databaseName: "TestDb")
14 .Options;
15 var dataContext = new DataContext(options);
16 dataContext.Database.EnsureCreated();
17
18 return dataContext;
19 }
20
21 /// <summary>
22 /// Adds services to IServiceCollection for testing.
23 /// </summary>
24 private void AddServices()
25 {
26 Services.AddDbContext<DataContext>();
27 Services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
28 Services.AddScoped<StateService>();
29 Services.AddScoped<AlertService>();
30 Services.AddScoped<UserViewModel>();
31 Services.AddScoped<CustomerViewModel>();
32 }
33
34 /// <summary>
35 /// Adds Services and creates a List<UserViewModel> and adds to component.
36 /// Will pass if LeaderBoard-component finds LeaderBoardContent-component
37 /// and css-tags are found (if not found list is null or empty)
38 /// </summary>
39 [Fact]
40 public void IndexPage_LeaderBoardIsRenderingSuccessfully_WithListUsers()
41 {
42 AddServices();
43 var list = new List<UserClientModel>()
44 {
45 new UserClientModel()
46 {
47 UserEmail="user@user.com"
48 },
49 new UserClientModel()
50 {
51 UserEmail="rune@user.com"
52 },
53 new UserClientModel()
54 {
55 UserEmail="simen@user.com"
56 },
57 new UserClientModel()
58 {
59 UserEmail="man@user.com"
60 }
61 };
62 var component = Render(
63 @<LeaderBoard />);
64 component.FindComponent<LeaderBoardContent>();
65
66 var contentComponent = Render(@<LeaderBoardContent ListUsers="list"/>
67 );
68 contentComponent.Find($".leaderboard-first");
69 contentComponent.Find($".leaderboard-rest");
70 }
71
72 /// <summary>
73 /// Renders the LeaderBoardContent-component without list.
74 /// Will pass if markup matching.
75 /// </summary>
76 [Fact]
77 public void IndexPage_LeaderBoardIsNotRenderingSuccessfully_WithoutList()
78 {
79 var component = Render(
80 @<LeaderBoardContent />);
81 component.MarkupMatches(@<p>Loading ...</p>);
82 }
83}