using System.Linq; using Luticate2.Auth.Business; using Xunit; namespace Luticate2.Auth.Tests.Business { public class TestDbo1 { public string MyString { get; set; } public TestDbo2 TestDbo2 { get; set; } } public class TestDbo2 { public string MyOtherString { get; set; } public int MyInt { get; set; } public TestDbo2 RecursiveObject { get; set; } } public class LuExpressionUtilsTests { [Fact] public void GetSingleMemberFromExpression1() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => x.MyString); Assert.NotNull(memberInfo); Assert.Equal("MyString", memberInfo.Name); } [Fact] public void GetSingleMemberFromExpression2() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => x.TestDbo2); Assert.NotNull(memberInfo); Assert.Equal("TestDbo2", memberInfo.Name); } [Fact] public void GetSingleMemberFromExpression3() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => x); Assert.Null(memberInfo); } [Fact] public void GetSingleMemberFromExpression4() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => 42); Assert.Null(memberInfo); } [Fact] public void GetSingleMemberFromExpression5() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => x.TestDbo2.MyInt); Assert.Null(memberInfo); } [Fact] public void GetSingleMemberFromExpression6() { var memberInfo = LuExpressionUtils.GetSingleMemberFromExpression(x => x.TestDbo2.RecursiveObject.MyInt); Assert.Null(memberInfo); } [Fact] public void GetMembersFromExpression1() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => x.MyString); Assert.NotNull(memberInfo); var memberInfosString = string.Join(".", memberInfo.Select(x => x.Name)); Assert.Equal("MyString", memberInfosString); } [Fact] public void GetMembersFromExpression2() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => x.TestDbo2); Assert.NotNull(memberInfo); var memberInfosString = string.Join(".", memberInfo.Select(x => x.Name)); Assert.Equal("TestDbo2", memberInfosString); } [Fact] public void GetMembersFromExpression3() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => x); Assert.Null(memberInfo); } [Fact] public void GetMembersFromExpression4() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => 42); Assert.Null(memberInfo); } [Fact] public void GetMembersFromExpression5() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => x.TestDbo2.MyInt); Assert.NotNull(memberInfo); var memberInfosString = string.Join(".", memberInfo.Select(x => x.Name)); Assert.Equal("TestDbo2.MyInt", memberInfosString); } [Fact] public void GetMembersFromExpression6() { var memberInfo = LuExpressionUtils.GetMembersFromExpression(x => x.TestDbo2.RecursiveObject.MyInt); Assert.NotNull(memberInfo); var memberInfosString = string.Join(".", memberInfo.Select(x => x.Name)); Assert.Equal("TestDbo2.RecursiveObject.MyInt", memberInfosString); } } }