Skip to content

Commit

Permalink
Improve design type converters
Browse files Browse the repository at this point in the history
  • Loading branch information
etvorun committed Dec 13, 2022
1 parent f792293 commit 089408a
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/Controls/src/Core.Design/EasingDesignTypeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ public class EasingDesignTypeConverter : KnownValuesDesignTypeConverter
public EasingDesignTypeConverter()
{ }

protected override bool ExclusiveToKnownValues => true;

protected override string[] KnownValues
=> new string[]
{
Expand Down
2 changes: 2 additions & 0 deletions src/Controls/src/Core.Design/KeyboardDesignTypeConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ public KeyboardDesignTypeConverter()
{
}

protected override bool ExclusiveToKnownValues => true;

protected override string[] KnownValues
=> new[]
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ public LayoutOptionsDesignTypeConverter()
{
}

protected override bool ExclusiveToKnownValues => true;

protected override string[] KnownValues
=> new string[] { "Start", "Center", "End", "Fill", "StartAndExpand", "CenterAndExpand", "EndAndExpand", "FillAndExpand" };
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="ColorDesignTypeConverterTests.cs" />
<Compile Include="DesignTypeConverterTests.cs" />
<Compile Include="GridLengthCollectionDesignTypeConverterTests.cs" />
<Compile Include="GridLengthDesignTypeConverterTests.cs" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
using Microsoft.Maui.Controls.Design;
using Xunit;

namespace Microsoft.Maui.Controls.Core.UnitTests
{
public class DesignTypeConverterTests
{
[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("1")]
[InlineData("Sta")]
[InlineData("START")]
public void LayoutOptionsDesignTypeConverter_Invalid(string value)
{
LayoutOptionsDesignTypeConverter converter = new LayoutOptionsDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.False(actual);
}

[Theory]
[InlineData("Start")]
[InlineData("End")]
[InlineData("FillAndExpand")]
public void LayoutOptionsDesignTypeConverter_Valid(string value)
{
LayoutOptionsDesignTypeConverter converter = new LayoutOptionsDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.True(actual);
}

[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("1")]
[InlineData("Lin")]
[InlineData("LINEAR")]
public void EasingDesignTypeConverter_Invalid(string value)
{
EasingDesignTypeConverter converter = new EasingDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.False(actual);
}

[Theory]
[InlineData("Linear")]
[InlineData("BounceIn")]
[InlineData("CubicOut")]
public void EasingDesignTypeConverter_Valid(string value)
{
EasingDesignTypeConverter converter = new EasingDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.True(actual);
}

[Theory]
[InlineData(null)]
[InlineData("")]
[InlineData("1")]
[InlineData("Tele")]
[InlineData("TELEPHONE")]
public void KeyboardDesignTypeConverter_Invalid(string value)
{
KeyboardDesignTypeConverter converter = new KeyboardDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.False(actual);
}

[Theory]
[InlineData("Plain")]
[InlineData("Numeric")]
[InlineData("Telephone")]
public void KeyboardDesignTypeConverter_Valid(string value)
{
KeyboardDesignTypeConverter converter = new KeyboardDesignTypeConverter();
bool actual = converter.IsValid(value);
Assert.True(actual);
}
}
}

0 comments on commit 089408a

Please sign in to comment.