SystemDeserializationTests.cs 1.5 KB

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