FormatMetricsTest.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Globalization;
  3. using System.Threading;
  4. using Xunit;
  5. namespace OhmGraphite.Test
  6. {
  7. public class FormatMetricsTest
  8. {
  9. [Fact]
  10. public void FormatGraphiteIdentifier()
  11. {
  12. var epoch = new DateTimeOffset(new DateTime(2001, 1, 13), TimeSpan.Zero).ToUnixTimeSeconds();
  13. var sensor = new Sensor("my.cpu.identifier", "voltage", 1.06f);
  14. string actual = GraphiteWriter.FormatGraphiteData("MY-PC", epoch, sensor);
  15. Assert.Equal("ohm.MY-PC.my.cpu.identifier.voltage 1.06 979344000", actual);
  16. }
  17. [Fact]
  18. public void FormatCultureInvariant()
  19. {
  20. CultureInfo original = Thread.CurrentThread.CurrentCulture;
  21. try
  22. {
  23. // de-DE culture will format 1.06 as 1,06 which graphite doesn't like
  24. Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("de-DE");
  25. var epoch = new DateTimeOffset(new DateTime(2001, 1, 13), TimeSpan.Zero).ToUnixTimeSeconds();
  26. var sensor = new Sensor("my.cpu.identifier", "voltage", 1.06f);
  27. string actual = GraphiteWriter.FormatGraphiteData("MY-PC", epoch, sensor);
  28. Assert.Equal("ohm.MY-PC.my.cpu.identifier.voltage 1.06 979344000", actual);
  29. }
  30. finally
  31. {
  32. Thread.CurrentThread.CurrentCulture = original;
  33. }
  34. }
  35. }
  36. }