ExpressionToCodeLib 2.1.0

Generates valid, readable C# from an expression tree, and can annotate that code with runtime values. Useful for e.g. code generation and unit testing assertions.

There is a newer version of this package available.
See the version list below for details.
Install-Package ExpressionToCodeLib -Version 2.1.0
dotnet add package ExpressionToCodeLib --version 2.1.0
<PackageReference Include="ExpressionToCodeLib" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ExpressionToCodeLib --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: ExpressionToCodeLib, 2.1.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install ExpressionToCodeLib as a Cake Addin
#addin nuget:?package=ExpressionToCodeLib&version=2.1.0

// Install ExpressionToCodeLib as a Cake Tool
#tool nuget:?package=ExpressionToCodeLib&version=2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Release Notes

Add support for .net standard 1.6 (.net core 1.0).

NuGet packages (6)

Showing the top 5 NuGet packages that depend on ExpressionToCodeLib:

Package Downloads
ProgressOnderwijsUtils
Collection of utilities developed by ProgressOnderwijs
TestBase
*TestBase* gives you a flying start with - fluent assertions that are easy to extend - sharp error messages - tools to help you test with “heavyweight” dependencies on - AspNetCore.Mvc, AspNet.Mvc or WebApi Contexts - HttpClient - Ado.Net - Streams & Logging - Mix & match with your favourite test runners & assertions. ``` UnitUnderTest.Action() .ShouldNotBeNull() .ShouldEqualByValueExceptFor(new {Id=1, Descr=expected}, ignoreList ) .Payload .ShouldMatchIgnoringCase("I expected this") .Should(someOtherPredicate); .Items .ShouldAll(predicate) .ShouldContain(item) .ShouldNotContain(predicate) .Where(predicate) .SingleOrAssertFail() .ShouldEqualByValue().ShouldEqualByValueExceptFor(...).ShouldEqualByValueOnMembers() work with all kinds of object and collections, and report what differed. string.ShouldMatch(pattern).ShouldNotMatch().ShouldBeEmpty().ShouldNotBeEmpty() .ShouldNotBeNullOrEmptyOrWhiteSpace().ShouldEqualIgnoringCase() .ShouldContain().ShouldStartWith().ShouldEndWith().ShouldBeContainedIn(), ... numeric.ShouldBeBetween().ShouldEqualWithTolerance()....GreaterThan....LessThan...GreaterOrEqualTo ... ienumerable.ShouldAll().ShouldContain().ShouldNotContain().ShouldBeEmpty().ShouldNotBeEmpty() ... stream.ShouldHaveSameStreamContentAs().ShouldContain() value.ShouldBe().ShouldNotBe().ShouldBeOfType().ShouldBeAssignableTo()... ``` TestBase.HttpClient.Fake ``` new FakeHttpClient() .Setup(x=>x.RequestUri.PathAndQuery.StartsWith("/this")) .Returns(response) .Setup(x=>x.Method==HttpMethod.Put) .Returns(new HttpResponseMessage(HttpStatusCode.Accepted)); ``` TestBase.AdoNet ------------------ `FakeDbConnection` ``` - db.SetupForQuery(…) - db.SetupForExecuteNonQuery(…) - db.ShouldHaveUpdated("tableName", …) - db.ShouldHaveSelected("tableName", …) - db.ShouldHaveDeleted("tableName", …) - db.Verify( x=>x.CommandText.Matches("Insert [case] .*") && x.Parameters["id"].Value==1 ) - db .ShouldHaveInvoked(cmd => predicate(cmd)) .ShouldHaveParameter("name", value) ``` `RecordingDbConnection` TestBase.Mvc.AspNetCore & TestBase.Mvc for Mvc 4 & Mvc 5 -------------------------------------------------------- ``` ControllerUnderTest.WithControllerContext() .Action() .ShouldbeViewResult() .ShouldHaveModel<TModel>() .ShouldEqualByValue(expected) ControllerUnderTest.Action() .ShouldBeRedirectToRouteResult() .ShouldHaveRouteValue("expectedKey", [Optional] "expectedValue"); ShouldHaveViewDataContaining(), ShouldBeJsonResult() etc. ``` - Test AspNetCore controllers with zero setup using `controllerUnderTest.WithControllerContext(actionUnderTest)` - Test more complex AspNetCore controller/application dependencies using `HostedMvcTestFixtureBase` and specify your MVCApplications `Startup` class. ``` [TestCase("/dummy")] public async Task Put_Should_ReturnA(string url) { var httpClient=GivenClientForRunningServer<Startup>(); GivenRequestHeaders(httpClient, "CustomHeader", "HeaderValue1"); var result = await httpClient.PutAsync(url, json); result.ShouldBe_202Accepted(); } ``` For Mvc4 and Mvc 5, fake your http request &amp; context, and use the `RegisterRoutes` method of your actual application to set up `Controller.Url` ``` ControllerUnderTest .WithHttpContextAndRoutes( RouteConfig.RegisterRoutes, "/incomingurl" ); ApiControllerUnderTest.WithWebApiHttpContext<T>( httpMethod, requestUri, routeTemplate) ``` Testable Logging ``` // Extensions.Logging.ListOfString var log = new List<String>(); ILogger mslogger= new LoggerFactory().AddStringListLogger(log).CreateLogger("Test2"); // Serilog.Sinks.ListOfString Serilog.Logger slogger= new LoggerConfiguration().WriteTo.StringList(log).CreateLogger(); ```
TestBase.AdoNet
TestBase.AdoNet TestBase.FakeDb ------------------ Fake and verify AdoNet queries and commands ``` - fakeDbConnection.SetupForQuery(IEnumerable<TFakeData>; ) - fakeDbConnection.SetupForQuery(IEnumerable<Tuple<TFakeDataForTable1,TFakeDataForTable2>> ) - fakeDbConnection.SetupForQuery(fakeData, new[] {"FieldName1", FieldName2"}) - fakeDbConnection.SetupForExecuteNonQuery(rowsAffected) - fakeDbConnection.ShouldHaveUpdated("tableName", [Optional] fieldList, whereClauseField) - fakeDbConnection.ShouldHaveSelected("tableName", [Optional] fieldList, whereClauseField) - fakeDbConnection.ShouldHaveUpdated("tableName", [Optional] fieldList, whereClauseField) - fakeDbConnection.ShouldHaveDeleted("tableName", whereClauseField) - fakeDbConnection.ShouldHaveInvoked(cmd => predicate(cmd)) - fakeDbConnection.ShouldHaveExecutedStoredProcedure("name") - fakeDbConnection.ShouldHaveXXX().ShouldHaveParameter("name", value) - fakeDbConnection.Verify(x=>x.CommandText.Matches("Insert [case] .*") && x.Parameters["id"].Value==1) ``` TestBase.RecordingDb -------------------- * `new RecordingDbConnection(IDbConnection)` helps you profile Ado.Net Db calls See also - TestBase - TestBase.Mvc - TestBase.AdoNet - Serilog.Sinks.ListOfString - Extensions.Logging.ListOfString
ExpressiveAssertions
Flexible assertion library leveraging the .NET expression tree syntax
FranSync.DependencyInjection.WindsorCastle
FranSync.Configuration

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
3.4.0 689 2/21/2021
3.3.0 7,785 9/12/2019
3.2.0 3,435 2/10/2019
3.1.0 8,213 7/10/2018
3.1.0-alpha 733 7/10/2018
3.0.0 10,956 6/27/2018
3.0.0-beta1 728 6/26/2018
3.0.0-alpha4 731 6/15/2018
3.0.0-alpha3 741 6/15/2018
3.0.0-alpha2 759 6/12/2018
3.0.0-alpha1 756 6/3/2018
2.7.0 16,216 2/19/2018
2.6.0 871 2/16/2018
2.6.0-signed 843 2/16/2018
2.5.1 6,118 10/30/2017
2.5.0 1,121 9/20/2017
2.4.1 856 8/23/2017
2.4.0 1,098 6/1/2017
2.3.0 828 6/1/2017
2.2.0 903 5/10/2017
2.1.0 869 5/5/2017
2.0.0 1,082 4/26/2017
2.0.0-beta7 777 4/10/2017
2.0.0-beta6 757 3/30/2017
2.0.0-beta5 812 3/30/2017
2.0.0-beta4 780 3/26/2017
2.0.0-beta3 764 3/26/2017
2.0.0-beta2 912 1/25/2017
2.0.0-alpha9 837 1/25/2017
2.0.0-alpha6 1,533 7/29/2016
2.0.0-alpha4 1,119 2/24/2016
2.0.0-alpha 1,056 2/7/2016
1.5.4 13,459 7/7/2015
1.5.3 2,787 6/15/2015
1.5.2 2,261 3/22/2015
1.5.1 1,069 3/10/2015
1.5.0 1,356 3/7/2015
1.4.8 1,618 1/21/2015
1.4.7 1,045 1/11/2015
1.4.6 3,050 8/30/2014
1.4.5 4,779 5/29/2014
1.4.4 5,099 4/9/2013
1.4.3 1,128 4/5/2013
1.4.2 1,099 3/29/2013
1.4.1 1,097 3/26/2013
1.4.0 1,102 3/12/2013
1.3.0 1,154 3/11/2013
1.2.0 1,104 3/8/2013
1.1.0.1 1,093 3/7/2013
1.1.0 1,097 3/7/2013
Show less