|
1 |
| -using NFluent; |
2 |
| -using System.Collections.Generic; |
| 1 | +using System.Collections.Generic; |
3 | 2 | using System.Linq.Dynamic.Core.CustomTypeProviders;
|
4 | 3 | using System.Linq.Dynamic.Core.Exceptions;
|
5 | 4 | using System.Linq.Dynamic.Core.Tests.Helpers.Models;
|
6 | 5 | using System.Linq.Expressions;
|
7 | 6 | using System.Reflection;
|
| 7 | +using NFluent; |
8 | 8 | using Xunit;
|
9 | 9 | using User = System.Linq.Dynamic.Core.Tests.Helpers.Models.User;
|
10 | 10 |
|
@@ -64,6 +64,36 @@ public override string ToString()
|
64 | 64 | }
|
65 | 65 | }
|
66 | 66 |
|
| 67 | + public class CustomClassWithOneWayImplicitConversion |
| 68 | + { |
| 69 | + public CustomClassWithOneWayImplicitConversion(string origin) |
| 70 | + { |
| 71 | + Origin = origin; |
| 72 | + } |
| 73 | + |
| 74 | + public string Origin { get; } |
| 75 | + |
| 76 | + public static implicit operator CustomClassWithOneWayImplicitConversion(string origin) |
| 77 | + { |
| 78 | + return new CustomClassWithOneWayImplicitConversion(origin); |
| 79 | + } |
| 80 | + |
| 81 | + public override string ToString() |
| 82 | + { |
| 83 | + return Origin; |
| 84 | + } |
| 85 | + } |
| 86 | + |
| 87 | + public class TestImplicitConversionContainer |
| 88 | + { |
| 89 | + public TestImplicitConversionContainer(CustomClassWithOneWayImplicitConversion oneWay) |
| 90 | + { |
| 91 | + OneWay = oneWay; |
| 92 | + } |
| 93 | + |
| 94 | + public CustomClassWithOneWayImplicitConversion OneWay { get; } |
| 95 | + } |
| 96 | + |
67 | 97 | public class TextHolder
|
68 | 98 | {
|
69 | 99 | public TextHolder(string name, CustomTextClass note)
|
@@ -757,6 +787,21 @@ public void DynamicExpressionParser_ParseLambda_With_Concat_CustomType_String()
|
757 | 787 | Assert.Equal("note1 (name1)", result);
|
758 | 788 | }
|
759 | 789 |
|
| 790 | + [Fact] |
| 791 | + public void DynamicExpressionParser_ParseLambda_With_One_Way_Implicit_Conversions() |
| 792 | + { |
| 793 | + // Arrange |
| 794 | + var testValue = "test"; |
| 795 | + var container = new TestImplicitConversionContainer(testValue); |
| 796 | + var expressionText = $"OneWay == \"{testValue}\""; |
| 797 | + |
| 798 | + // Act |
| 799 | + var lambda = DynamicExpressionParser.ParseLambda<TestImplicitConversionContainer, bool>(ParsingConfig.Default, false, expressionText); |
| 800 | + |
| 801 | + // Assert |
| 802 | + Assert.NotNull(lambda); |
| 803 | + } |
| 804 | + |
760 | 805 | [Fact]
|
761 | 806 | public void DynamicExpressionParser_ParseLambda_Operator_Less_Greater_With_Guids()
|
762 | 807 | {
|
|
0 commit comments