Skip to content

Commit

Permalink
Switch tests to net6
Browse files Browse the repository at this point in the history
  • Loading branch information
VitaliyMF committed Dec 31, 2023
1 parent b94b6b1 commit 18c0ed8
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 14 deletions.
27 changes: 27 additions & 0 deletions .github/workflows/dotnet-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: .NET

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: 6.0.x
- name: Restore dependencies
run: dotnet restore src
- name: Build Lib
run: dotnet build src/NReco.LambdaParser -property:TargetFrameworks=netstandard2.0 --no-restore
- name: Build Tests
run: dotnet build src/NReco.LambdaParser.Tests --no-restore
- name: Test
run: dotnet test src/NReco.LambdaParser.Tests --no-build --verbosity normal
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# NReco LambdaParser
Runtime parser for string expressions (formulas, method calls, properties/fields/arrays accessors). `LambdaParser` builds dynamic LINQ expression tree and compiles it to the lambda delegate. Types are resolved at run-time like in dynamic languages.

[![NuGet Release](https://img.shields.io/nuget/v/NReco.LambdaParser.svg)](https://www.nuget.org/packages/NReco.LambdaParser/) | [![AppVeyor](https://img.shields.io/appveyor/ci/nreco/lambdaparser/master.svg)](https://ci.appveyor.com/project/nreco/lambdaparser)
[![NuGet Release](https://img.shields.io/nuget/v/NReco.LambdaParser.svg)](https://www.nuget.org/packages/NReco.LambdaParser/) | [![AppVeyor](https://img.shields.io/appveyor/ci/nreco/lambdaparser/master.svg)](https://ci.appveyor.com/project/nreco/lambdaparser) | ![Tests](https://github.com/nreco/data/actions/workflows/dotnet-test.yml/badge.svg)

* can be used in *any* .NET app: net45 (legacy .NET Framework apps), netstandard1.3 (.NET Core apps), netstandard2.0 (all modern .NET apps).
* any number of expression arguments (values can be provided as dictionary or by callback delegate)
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.{build}
os: Visual Studio 2019
os: Visual Studio 2022

branches:
only:
Expand Down
22 changes: 14 additions & 8 deletions src/NReco.LambdaParser.Tests/LambdaParserTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,24 +129,30 @@ public class LambdaParserTests {
Assert.Equal(new TimeSpan(1,0,0,0).Negate(), lambdaParser.Eval("oneDay - twoDays", varContext));
Assert.Equal(new TimeSpan(1,0,0,0).Negate(), lambdaParser.Eval("-twoDays + oneDay", varContext));


}

[Fact]
public void OptionsParams() {
//Use new invoker
lambdaParser = new LambdaParser(OptionsParamsInvokeMethod.Instance);
var lambdaParser = new LambdaParser(OptionsParamsInvokeMethod.Instance);
var varContext = getContext();

Assert.True((bool)lambdaParser.Eval("testObj.OptionalParam(true,true)", varContext));
Assert.False((bool)lambdaParser.Eval("testObj.OptionalParam(true,true,false)", varContext));
Assert.False((bool)lambdaParser.Eval("testObj.OptionalParam(true,true,false)", varContext));

Assert.True((bool)lambdaParser.Eval("testObj.OptionalParam2(true,true)", varContext));
Assert.False((bool)lambdaParser.Eval("testObj.OptionalParam2(true,true,true,\"fail\")", varContext));
Assert.True((bool)lambdaParser.Eval("testObj.OptionalParam2(true,true)", varContext));
Assert.False((bool)lambdaParser.Eval("testObj.OptionalParam2(true,true,true,\"fail\")", varContext));

Assert.True((bool)lambdaParser.Eval("testObj.TestShadowMethod()", varContext));
Assert.True((bool)lambdaParser.Eval("testObj.TestShadowMethod()", varContext));

Assert.True((bool)lambdaParser.Eval("testObj.TestShadowProperty", varContext));

Assert.Equal("Test123ThisIsaTest",(string)lambdaParser.Eval("testObj.ParamMethodTest(\"Test\",123,\"This\",\"Is\",\"a\",\"Test\")", varContext));
Assert.Equal("Today is Saturday, Day 9 of December",lambdaParser.Eval("testObj.Format(\"Today is {0}, Day {1} of {2}\",\"Saturday\",9,\"December\")", varContext));

Assert.Equal("Test123ThisIsaTest", (string)lambdaParser.Eval("testObj.ParamMethodTest(\"Test\",123,\"This\",\"Is\",\"a\",\"Test\")", varContext));
Assert.Equal("Today is Saturday, Day 9 of December", lambdaParser.Eval("testObj.Format(\"Today is {0}, Day {1} of {2}\",\"Saturday\",9,\"December\")", varContext));
}


[Fact]
public void SingleEqualSign() {
var varContext = getContext();
Expand Down
8 changes: 4 additions & 4 deletions src/NReco.LambdaParser.Tests/NReco.LambdaParser.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>

Expand All @@ -10,9 +10,9 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
<PackageReference Include="xunit" Version="2.6.1" />
</ItemGroup>

</Project>

0 comments on commit 18c0ed8

Please sign in to comment.