123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- using System;
- using System.Linq.Expressions;
- using Masuit.Tools.Linq;
- using Xunit;
- namespace Masuit.Tools.Abstractions.Test.Linq;
- public class LinqExtensionTests
- {
- [Fact]
- public void And_ShouldCombineExpressionsWithAnd()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.And(expr2);
- Assert.True(combined.Compile()(7));
- Assert.False(combined.Compile()(4));
- Assert.False(combined.Compile()(11));
- }
- [Fact]
- public void AndIf_ShouldCombineExpressionsWithAndIfConditionIsTrue()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.AndIf(true, expr2);
- Assert.True(combined.Compile()(7));
- Assert.False(combined.Compile()(4));
- Assert.False(combined.Compile()(11));
- }
- [Fact]
- public void AndIf_ShouldNotCombineExpressionsWithAndIfConditionIsFalse()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.AndIf(false, expr2);
- Assert.True(combined.Compile()(7));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void AndIf_WithFuncCondition_ShouldCombineExpressionsWithAndIfConditionIsTrue()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.AndIf(() => true, expr2);
- Assert.True(combined.Compile()(7));
- Assert.False(combined.Compile()(4));
- Assert.False(combined.Compile()(11));
- }
- [Fact]
- public void AndIf_WithFuncCondition_ShouldNotCombineExpressionsWithAndIfConditionIsFalse()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.AndIf(() => false, expr2);
- Assert.True(combined.Compile()(7));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void Or_ShouldCombineExpressionsWithOr()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.Or(expr2);
- Assert.True(combined.Compile()(7));
- Assert.True(combined.Compile()(4));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void OrIf_ShouldCombineExpressionsWithOrIfConditionIsTrue()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.OrIf(true, expr2);
- Assert.True(combined.Compile()(7));
- Assert.True(combined.Compile()(4));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void OrIf_ShouldNotCombineExpressionsWithOrIfConditionIsFalse()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.OrIf(false, expr2);
- Assert.True(combined.Compile()(7));
- Assert.False(combined.Compile()(4));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void OrIf_WithFuncCondition_ShouldCombineExpressionsWithOrIfConditionIsTrue()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.OrIf(() => true, expr2);
- Assert.True(combined.Compile()(7));
- Assert.True(combined.Compile()(4));
- Assert.True(combined.Compile()(11));
- }
- [Fact]
- public void OrIf_WithFuncCondition_ShouldNotCombineExpressionsWithOrIfConditionIsFalse()
- {
- Expression<Func<int, bool>> expr1 = x => x > 5;
- Expression<Func<int, bool>> expr2 = x => x < 10;
- var combined = expr1.OrIf(() => false, expr2);
- Assert.True(combined.Compile()(7));
- Assert.False(combined.Compile()(4));
- Assert.True(combined.Compile()(11));
- }
- }
|