You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.9 KiB

  1. using JT808.Protocol.Interfaces;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Text;
  6. using Xunit;
  7. namespace JT808.Protocol.Test
  8. {
  9. public class DependencyInjectionExtensionsTest
  10. {
  11. [Fact]
  12. public void Test1()
  13. {
  14. IServiceCollection serviceDescriptors = new ServiceCollection();
  15. //1
  16. serviceDescriptors.AddJT808Configure<DT1Config>()
  17. .AddJT808Configure<DT2Config>();
  18. IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
  19. //使用实例的方式获取
  20. IJT808Config DT1JT808Config = serviceProvider.GetRequiredService<DT1Config>();
  21. IJT808Config DT2JT808Config = serviceProvider.GetRequiredService<DT2Config>();
  22. Assert.Equal("DT1", DT1JT808Config.ConfigId);
  23. Assert.Equal("DT2", DT2JT808Config.ConfigId);
  24. }
  25. [Fact]
  26. public void Test2()
  27. {
  28. IServiceCollection serviceDescriptors = new ServiceCollection();
  29. serviceDescriptors.AddJT808Configure(new DT1Config())
  30. .AddJT808Configure(new DT2Config());
  31. IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider();
  32. //使用实例的方式获取
  33. IJT808Config DT1JT808Config = serviceProvider.GetRequiredService<DT1Config>();
  34. IJT808Config DT2JT808Config = serviceProvider.GetRequiredService<DT2Config>();
  35. Assert.Equal("DT1", DT1JT808Config.ConfigId);
  36. Assert.Equal("DT2", DT2JT808Config.ConfigId);
  37. }
  38. public class DT1Config : GlobalConfigBase
  39. {
  40. public override string ConfigId { get; protected set; } = "DT1";
  41. }
  42. public class DT2Config : GlobalConfigBase
  43. {
  44. public override string ConfigId { get; protected set; } = "DT2";
  45. }
  46. }
  47. }