SystemDeserializationTests.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using RackPeek.Domain.Resources.SystemResources;
  2. using RackPeek.Yaml;
  3. namespace Tests.Yaml;
  4. public class SystemDeserializationTests
  5. {
  6. public static ISystemRepository CreateSut(string yaml)
  7. {
  8. var yamlResourceCollection = new YamlResourceCollection(false);
  9. yamlResourceCollection.Load(yaml, "test.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;
  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. }