ObjectTests.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Chino.IO;
  5. using Chino.IO.Devices;
  6. using Chino.Objects;
  7. using Xunit;
  8. namespace ChinoTest
  9. {
  10. public class ObjectTests
  11. {
  12. private class TestObject : Chino.Objects.Object
  13. {
  14. public override bool CanOpen => true;
  15. protected override void Open(AccessMask grantedAccess)
  16. {
  17. }
  18. }
  19. private class TestDevice : ConsoleDevice
  20. {
  21. }
  22. private class TestDriver : Driver
  23. {
  24. protected override void InstallDevice(DeviceDescription deviceDescription)
  25. {
  26. IOManager.InstallDevice(new TestDevice());
  27. }
  28. protected override bool IsCompatible(DeviceDescription deviceDescription)
  29. {
  30. return true;
  31. }
  32. }
  33. [Fact]
  34. public void TestCreateDirectory()
  35. {
  36. ObjectManager.CreateDirectory(AccessMask.GenericAll, new ObjectAttributes { Name = "dev" });
  37. var device = ObjectManager.OpenDirectory(AccessMask.GenericAll, new ObjectAttributes { Name = "/dev" });
  38. Assert.Equal("dev", device.Object.Name);
  39. }
  40. [Fact]
  41. public void TestCreateObject()
  42. {
  43. ObjectManager.CreateObject(new TestObject(), AccessMask.GenericAll, new ObjectAttributes { Name = "obj" });
  44. var obj = ObjectManager.OpenObject<TestObject>(AccessMask.GenericAll, new ObjectAttributes { Name = "/obj" });
  45. Assert.Equal("obj", obj.Object.Name);
  46. }
  47. [Fact]
  48. public void TestCreateDevice()
  49. {
  50. IOManager.InstallDriver("test.test", new TestDriver());
  51. IOManager.RegisterDeviceDescription(new DeviceDescription("test.console"));
  52. var device = ObjectManager.OpenObject<Device>(AccessMask.GenericRead, new ObjectAttributes { Name = "/dev/console0" });
  53. }
  54. }
  55. }