ServiceDeserializationTests.cs 1.3 KB

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