csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.9 KiB
71 lines
2.9 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using System.Linq;
|
|
using Avalonia.Data.Converters;
|
|
using Xunit;
|
|
|
|
namespace Avalonia.Base.UnitTests.Data
|
|
{
|
|
public class ObjectConvertersTests
|
|
{
|
|
[Theory]
|
|
[InlineData(null, null, null, true)]
|
|
[InlineData(null, null, "value", false)]
|
|
[InlineData(null, "value", null, false)]
|
|
[InlineData("value", null, null, false)]
|
|
[InlineData("value", "value", "value", false)]
|
|
public void ObjectConvertersTests_AreAllNull_Works(object? value1, object? value2, object? value3, bool valid)
|
|
{
|
|
var converter = ObjectConverters.AreAllNull;
|
|
var result = converter.Convert([value1, value2, value3], typeof(bool), null, CultureInfo.CurrentCulture);
|
|
Assert.Equal(valid, Assert.IsType<bool>(result));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null, null, null, true)]
|
|
[InlineData(null, null, "value", true)]
|
|
[InlineData(null, "value", null, true)]
|
|
[InlineData("value", null, null, true)]
|
|
[InlineData("value", "value", "value", false)]
|
|
public void ObjectConvertersTests_AreAnyNull_Works(object? value1, object? value2, object? value3, bool valid)
|
|
{
|
|
var converter = ObjectConverters.AreAnyNull;
|
|
var result = converter.Convert([value1, value2, value3], typeof(bool), null, CultureInfo.CurrentCulture);
|
|
Assert.Equal(valid, Assert.IsType<bool>(result));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("value", "value", "value", true)]
|
|
[InlineData(null, "value", null, false)]
|
|
[InlineData("value", null, "value", false)]
|
|
[InlineData("value", "value", "value1", false)]
|
|
[InlineData("value1", "value", "value1", false)]
|
|
[InlineData("value", "value", 1, false)]
|
|
public void ObjectConvertersTests_AreEqual_Works(object? value1, object? value2, object? value3, bool valid)
|
|
{
|
|
var converter = ObjectConverters.AreAllEqual;
|
|
var result = converter.Convert([value1, value2, value3], typeof(bool), null, CultureInfo.CurrentCulture);
|
|
Assert.Equal(valid, Assert.IsType<bool>(result));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(true, true, true)]
|
|
[InlineData(false, true, false)]
|
|
[InlineData(false, false, true)]
|
|
public void ObjectConvertersTests_AreEqual_Edge_Works(bool empty, bool unique, bool valid)
|
|
{
|
|
ICollection<object?> values;
|
|
if (empty)
|
|
values = Array.Empty<object?>();
|
|
else if (unique)
|
|
values = ["1", "2"];
|
|
else
|
|
values = ["1", "1"];
|
|
|
|
var converter = ObjectConverters.AreAllEqual;
|
|
var result = converter.Convert(values.ToList(), typeof(bool), null, CultureInfo.CurrentCulture);
|
|
Assert.Equal(valid, Assert.IsType<bool>(result));
|
|
}
|
|
}
|
|
}
|
|
|