BoolConvertersTests.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Globalization;
  2. using Avalonia.Data.Converters;
  3. using Xunit;
  4. namespace Avalonia.Base.UnitTests.Data;
  5. public class BoolConvertersTests
  6. {
  7. [Fact]
  8. public void BoolConverters_Not_Works_TwoWay()
  9. {
  10. var converter = BoolConverters.Not;
  11. var result = converter.Convert(true, typeof(bool), null, CultureInfo.CurrentCulture);
  12. Assert.False(Assert.IsType<bool>(result));
  13. result = converter.ConvertBack(false, typeof(bool), null, CultureInfo.CurrentCulture);
  14. Assert.True(Assert.IsType<bool>(result));
  15. }
  16. [Fact]
  17. public void BoolConverters_Not_Returns_Unset_On_Invalid_Input()
  18. {
  19. var converter = BoolConverters.Not;
  20. var result = converter.Convert(1234, typeof(bool), null, CultureInfo.CurrentCulture);
  21. Assert.Equal(AvaloniaProperty.UnsetValue, result);
  22. }
  23. [Theory]
  24. [InlineData(false, false, false)]
  25. [InlineData(false, true, false)]
  26. [InlineData(true, false, false)]
  27. [InlineData(true, true, true)]
  28. public void BoolConverters_And_Works(bool a, bool b, bool y)
  29. {
  30. var converter = BoolConverters.And;
  31. var result = converter.Convert([a, b], typeof(bool), null, CultureInfo.CurrentCulture);
  32. Assert.Equal(y, Assert.IsType<bool>(result));
  33. }
  34. [Theory]
  35. [InlineData(false, false, false)]
  36. [InlineData(false, true, true)]
  37. [InlineData(true, false, true)]
  38. [InlineData(true, true, true)]
  39. public void BoolConverters_Or_Works(bool a, bool b, bool y)
  40. {
  41. var converter = BoolConverters.Or;
  42. var result = converter.Convert([a, b], typeof(bool), null, CultureInfo.CurrentCulture);
  43. Assert.Equal(y, Assert.IsType<bool>(result));
  44. }
  45. }