diff --git a/.gitignore b/.gitignore index badff97..4e56123 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,7 @@ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs - +tools # Build results [Dd]ebug/ [Dd]ebugPublic/ diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..e464a79 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,23 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + "program": "${workspaceRoot}/bin/Debug//", + "args": [], + "cwd": "${workspaceRoot}", + "externalConsole": false, + "stopAtEntry": false, + "internalConsoleOptions": "openOnSessionStart" + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach", + "processId": "${command.pickProcess}" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..c73077e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,16 @@ +{ + "version": "0.1.0", + "command": "dotnet", + "isShellCommand": true, + "args": [], + "tasks": [ + { + "taskName": "build", + "args": [ + "" + ], + "isBuildCommand": true, + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/Coverage.ps1 b/Coverage.ps1 new file mode 100644 index 0000000..be7875b --- /dev/null +++ b/Coverage.ps1 @@ -0,0 +1,6 @@ +nuget install OpenCover -Version 4.6.519 -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\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\opencover_results.xml \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index fb19138..2ff8ea4 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,6 +12,7 @@ init: before_build: - ps: invoke-webrequest https://go.microsoft.com/fwlink/?LinkID=827524 -OutFile core.exe - ps: .\core.exe /install /quiet /norestart +- ps: .\update-projectjson.ps1 - ps: dotnet restore build_script: @@ -20,4 +21,5 @@ build_script: - ps: dotnet build -c Release .\src\UriBuilder.Fluent.UnitTests test_script: -- ps: dotnet test -c Release .\src\UriBuilder.Fluent.UnitTests \ No newline at end of file +- ps: dotnet test -c Release .\src\UriBuilder.Fluent.UnitTests +- ps: .\Coverage.ps1 \ No newline at end of file diff --git a/src/UriBuilder.Fluent.UnitTests/project.json b/src/UriBuilder.Fluent.UnitTests/project.json index d8d6294..ecedb3c 100644 --- a/src/UriBuilder.Fluent.UnitTests/project.json +++ b/src/UriBuilder.Fluent.UnitTests/project.json @@ -9,6 +9,7 @@ }, "frameworks": { + "net46": {}, "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { diff --git a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs index 75e7b96..69e7f40 100644 --- a/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs +++ b/src/UriBuilder.Fluent/TerribleDevUriExtensions.cs @@ -21,7 +21,7 @@ namespace System valuesEnum = new string[0]; } var isfirst = string.IsNullOrWhiteSpace(bld.Query); - var intitialValue = isfirst ? "?" : $"{bld.Query}&"; + var intitialValue = isfirst ? "" : $"{bld.Query.TrimStart('?')}&"; var sb = new StringBuilder($"{intitialValue}{key}"); var validValueHit = false; foreach(var value in valuesEnum) diff --git a/src/UriBuilder.Fluent/project.json b/src/UriBuilder.Fluent/project.json index 864b9a5..f76b11f 100644 --- a/src/UriBuilder.Fluent/project.json +++ b/src/UriBuilder.Fluent/project.json @@ -6,7 +6,7 @@ }, "frameworks": { - "netstandard1.6": { + "netstandard1.3": { "imports": "dnxcore50" } } diff --git a/update-projectjson.ps1 b/update-projectjson.ps1 index 194cfa3..2987cd7 100644 --- a/update-projectjson.ps1 +++ b/update-projectjson.ps1 @@ -1,8 +1,16 @@ -Get-ChildItem -Path $ENV:APPVEYOR_BUILD_FOLDER -Recurse –File -Filter project.json | foreach { - $jsonFile = Get-Content $_.FullName -raw | ConvertFrom-Json - if($jsonFile.version) - { - $jsonFile.version = $ENV:APPVEYOR_BUILD_VERSION - $jsonFile | ConvertTo-Json -Depth 999 | Out-File $_.FullName - } -} \ No newline at end of file +$projectJsonFileLocation = "src/UriBuilder.Fluent/project.json" +$newVersion = $env:APPVEYOR_REPO_TAG_NAME +if($newVersion -eq $null) +{ + $newVersion = "1.0.0-${env:APPVEYOR_BUILD_VERSION}" +} +if($newVersion -eq $null) +{ + return +} + +Write-Host "$projectJsonFileLocation will be update with new version '$newVersion'" + +$json = (Get-Content $projectJsonFileLocation -Raw) | ConvertFrom-Json +$json.version = $newVersion +$json | ConvertTo-Json -depth 100 | Out-File $projectJsonFileLocation \ No newline at end of file