7 Commits

Author SHA1 Message Date
Tommy Parnell
a80ec08760 this works and is updated woot 2016-11-14 15:19:16 -05:00
Tommy Parnell
b4c3914e73 does this really work 2016-11-14 15:00:21 -05:00
Tommy Parnell
176659d0cb dont double test 2016-11-12 16:05:20 -05:00
Tommy Parnell
ad60fd47d9 try build instead 2016-11-12 15:59:14 -05:00
Tommy Parnell
3c3641a4f5 try publish instead of build 2016-11-12 15:57:22 -05:00
Tommy Parnell
d7fc6865c1 add 462 2016-11-12 15:51:32 -05:00
Tommy Parnell
1911b4a3e7 object serialization yo 2016-11-12 15:09:41 -05:00
6 changed files with 71 additions and 22 deletions

View File

@@ -6,6 +6,6 @@ if($env:APPVEYOR_REPO_TAG -eq "true")
nuget install OpenCover -Version 4.6.519 -OutputDirectory tools nuget install OpenCover -Version 4.6.519 -OutputDirectory tools
nuget install coveralls.net -Version 0.7.0 -OutputDirectory tools nuget install coveralls.net -Version 0.7.0 -OutputDirectory tools
.\tools\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:" test "".\src\UriBuilder.Fluent.UnitTests"" -f net461" -register:user -filter:"+[UriBuilder*]* -[*Tests]*" -returntargetcode -output:opencover_results.xml .\tools\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:" test "".\src\UriBuilder.Fluent.UnitTests"" -f net462" -register:user -filter:"+[UriBuilder*]* -[*Tests]*" -returntargetcode -output:opencover_results.xml
.\tools\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\opencover_results.xml .\tools\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\opencover_results.xml

View File

@@ -12,15 +12,16 @@ init:
before_build: before_build:
- ps: invoke-webrequest https://go.microsoft.com/fwlink/?LinkID=827524 -OutFile core.exe - ps: invoke-webrequest https://go.microsoft.com/fwlink/?LinkID=827524 -OutFile core.exe
- ps: .\core.exe /install /quiet /norestart - ps: .\core.exe /install /quiet /norestart
- ps: iwr -Uri https://download.microsoft.com/download/E/F/D/EFD52638-B804-4865-BB57-47F4B9C80269/NDP462-DevPack-KB3151934-ENU.exe -OutFile net452.exe
- ps: start-process .\net452.exe -Wait '/install /quiet /norestart'
build_script: build_script:
- ps: dotnet restore - ps: dotnet restore
- ps: dotnet build -c Release .\src\UriBuilder.Fluent - ps: dotnet build -c Release .\src\UriBuilder.Fluent
- ps: dotnet build -c Release .\src\UriBuilder.Fluent.UnitTests - ps: dotnet publish -c Release .\src\UriBuilder.Fluent.UnitTests
test_script: test_script:
- ps: dotnet test -c Release .\src\UriBuilder.Fluent.UnitTests
- ps: .\Coverage.ps1 - ps: .\Coverage.ps1
- ps: .\update-projectjson.ps1 - ps: .\update-projectjson.ps1
- ps: dotnet restore - ps: dotnet restore

View File

@@ -116,6 +116,16 @@ namespace FluentUriBuilder.Tests
.WithParameter("supgf", "no22"); .WithParameter("supgf", "no22");
Assert.Equal("http://awesome.com/?awesome=yodawg&supg=no2&supgf=no22", url.Uri.ToString()); Assert.Equal("http://awesome.com/?awesome=yodawg&supg=no2&supgf=no22", url.Uri.ToString());
} }
[Fact]
public void TestSerializedParameters()
{
var url = new UriBuilder("http://awesome.com")
.WithSerializedObject(new {yo="dawg"});
Assert.Equal("http://awesome.com/?yo=dawg", url.Uri.ToString());
url = new UriBuilder("http://awesome.com")
.WithSerializedObject(new {yo=""});
Assert.Equal("http://awesome.com/?yo", url.Uri.ToString());
}
[Fact] [Fact]
public void AddDictOfParams() public void AddDictOfParams()

View File

@@ -9,7 +9,8 @@
}, },
"frameworks": { "frameworks": {
"net461": {}, "net462": {
},
"netcoreapp1.0": { "netcoreapp1.0": {
"dependencies": { "dependencies": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -17,6 +18,7 @@ namespace System
/// <returns></returns> /// <returns></returns>
public static UriBuilder WithParameter(this UriBuilder bld, string key, params string[] values) => bld.WithParameter(key, valuesEnum: values); public static UriBuilder WithParameter(this UriBuilder bld, string key, params string[] values) => bld.WithParameter(key, valuesEnum: values);
public static UriBuilder WithParameter(this UriBuilder bld, string key, object value) => bld.WithParameter(key, new object[1] { value });
/// <summary> /// <summary>
/// Appends query strings from dictionary /// Appends query strings from dictionary
/// </summary> /// </summary>
@@ -138,5 +140,20 @@ namespace System
bld.Scheme = predicate ? "https" : "http"; bld.Scheme = predicate ? "https" : "http";
return bld; return bld;
} }
#if (netstandard15)
public static UriBuilder WithSerializedObject(this UriBuilder bld, object serialize)
{
var types = serialize.GetType().GetTypeInfo().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty);
foreach(var type in types)
{
bld.WithParameter(type.Name, type.GetValue(serialize, null));
}
return bld;
}
#endif
} }
} }

View File

@@ -1,28 +1,48 @@
{ {
"version": "1.0.0-*", "version": "1.0.0-*",
"packOptions": { "packOptions": {
"owners": [ "owners": [
"Tommy Parnell" "Tommy Parnell"
], ],
"projectUrl": "https://github.com/TerribleDev/UriBuilder.Fluent", "repository": {
"summary": "Fluent extensions for UriBuilder", "url": "https://github.com/TerribleDev/UriBuilder.Fluent"
"tags": [ },
"Url building", "summary": "Fluent extensions for UriBuilder",
"Uri", "tags": [
"Uri building", "Url building",
"fluent", "Uri",
"extension" "Uri building",
] "fluent",
}, "extension"
"dependencies": { ]
"NETStandard.Library": "1.6.0"
}, },
"authors": [ "authors": [
"Tommy Parnell" "Tommy Parnell"
], ],
"frameworks": { "frameworks": {
"netstandard1.1": { "netstandard1.1": {
"imports": "dnxcore50" "buildOptions": {
"define": [ "netstandard11" ]
},
"dependencies": {
"NETStandard.Library": "1.6.0"
}
},
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"buildOptions": {
"define": [ "netstandard15" ]
}
},
"net45":{
"buildOptions": {
"define": [ "netstandard15" ]
},
"frameworkAssemblies": {
"System.Runtime":"4.0.0"
}
} }
} }
} }