SystemDeserializationTests.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using RackPeek;
  2. using RackPeek.Domain.Resources.SystemResources;
  3. using RackPeek.Yaml;
  4. namespace Tests.Yaml;
  5. public class ServiceDeserializationTests
  6. {
  7. public static ISystemRepository CreateSut(string yaml)
  8. {
  9. var yamlResourceCollection = new YamlResourceCollection();
  10. yamlResourceCollection.Load(yaml, "test.yaml");
  11. return new YamlSystemRepository(yamlResourceCollection);
  12. }
  13. [Fact]
  14. public async Task deserialize_yaml_kind_System()
  15. {
  16. // type: Hypervisor | Baremetal | VM | Container
  17. // Given
  18. var yaml = $@"
  19. resources:
  20. - kind: System
  21. type: Hypervisor
  22. name: home-virtualization-host
  23. os: proxmox
  24. cores: 2
  25. ram: 12gb
  26. drives:
  27. - size: 2Tb
  28. - size: 1tb
  29. runsOn: dell-c6400-node-01
  30. ";
  31. var sut = CreateSut(yaml);
  32. // When
  33. var resources = await sut.GetAllAsync();
  34. // Then
  35. var resource = Assert.Single(resources);
  36. Assert.IsType<SystemResource>(resource);
  37. var system = resource as SystemResource;
  38. Assert.NotNull(system);
  39. Assert.Equal("Hypervisor", system.Type);
  40. Assert.Equal("home-virtualization-host", system.Name);
  41. Assert.Equal("proxmox", system.Os);
  42. Assert.Equal(2, system.Cores);
  43. Assert.Equal(12, system.Ram);
  44. // Drives
  45. Assert.NotNull(system.Drives);
  46. Assert.Equal(2048, system.Drives[0].Size);
  47. Assert.Equal(1024, system.Drives[1].Size);
  48. Assert.Equal("dell-c6400-node-01", system.RunsOn);
  49. }
  50. }