ServiceDeserializationTests.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using RackPeek.Domain.Resources.Services;
  2. using RackPeek.Domain.Resources.SystemResources;
  3. using RackPeek.Yaml;
  4. namespace Tests.Yaml;
  5. public class ServiceDeserializationTests
  6. {
  7. public static IServiceRepository CreateSut(string yaml)
  8. {
  9. var yamlResourceCollection = new YamlResourceCollection();
  10. yamlResourceCollection.Load(yaml, "test.yaml");
  11. return new YamlServiceRepository(yamlResourceCollection);
  12. }
  13. [Fact]
  14. public async Task deserialize_yaml_kind_Service()
  15. {
  16. // Given
  17. var yaml = @"
  18. resources:
  19. - kind: Service
  20. name: immich
  21. network:
  22. ip: 192.168.0.4
  23. port: 8080
  24. protocol: TCP
  25. url: http://immich.lan:8080
  26. runsOn: proxmox-host
  27. ";
  28. var sut = CreateSut(yaml);
  29. // When
  30. var resources = await sut.GetAllAsync();
  31. // Then
  32. var resource = Assert.Single(resources);
  33. var service = Assert.IsType<Service>(resource);
  34. Assert.Equal("immich", service.Name);
  35. Assert.Equal("Service", service.Kind);
  36. Assert.Equal("proxmox-host", service.RunsOn);
  37. Assert.NotNull(service.Network);
  38. Assert.Equal("192.168.0.4", service.Network.Ip);
  39. Assert.Equal(8080, service.Network.Port);
  40. Assert.Equal("TCP", service.Network.Protocol);
  41. Assert.Equal("http://immich.lan:8080", service.Network.Url);
  42. }
  43. }