Update: added tests
This commit is contained in:
Родитель
85efdd17a6
Коммит
c539c525c9
|
@ -6,6 +6,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EquinoxLabs.SVGSharpie", "s
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EquinoxLabs.SVGSharpie.ImageSharp", "src\EquinoxLabs.SVGSharpie.ImageSharp\EquinoxLabs.SVGSharpie.ImageSharp.csproj", "{E4E9C756-3BDE-46B4-AEAD-9837A7316746}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EquinoxLabs.SVGSharpie.ImageSharp.Tests", "tests\EquinoxLabs.SVGSharpie.ImageSharp.Tests\EquinoxLabs.SVGSharpie.ImageSharp.Tests.csproj", "{46F9A6AA-1E92-4ADE-9C2B-536EFBEFAA3C}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -20,6 +22,10 @@ Global
|
|||
{E4E9C756-3BDE-46B4-AEAD-9837A7316746}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E4E9C756-3BDE-46B4-AEAD-9837A7316746}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E4E9C756-3BDE-46B4-AEAD-9837A7316746}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{46F9A6AA-1E92-4ADE-9C2B-536EFBEFAA3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{46F9A6AA-1E92-4ADE-9C2B-536EFBEFAA3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{46F9A6AA-1E92-4ADE-9C2B-536EFBEFAA3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{46F9A6AA-1E92-4ADE-9C2B-536EFBEFAA3C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
11
appveyor.yml
11
appveyor.yml
|
@ -24,15 +24,6 @@ environment:
|
|||
- target_framework: net462
|
||||
is_32bit: True
|
||||
|
||||
#- target_framework: mono
|
||||
# is_32bit: False
|
||||
#- target_framework: mono
|
||||
# is_32bit: True
|
||||
#- target_framework: net47
|
||||
# is_32bit: False
|
||||
#- target_framework: net47
|
||||
# is_32bit: True
|
||||
|
||||
install:
|
||||
- ps: |
|
||||
if ($env:target_framework -eq "mono") {
|
||||
|
@ -51,7 +42,7 @@ build_script:
|
|||
- cmd: build.cmd
|
||||
|
||||
# test_script:
|
||||
# - ps: .\run-tests.ps1 $env:target_framework $env:is_32bit
|
||||
- ps: .\run-tests.ps1 $env:target_framework $env:is_32bit
|
||||
|
||||
after_test:
|
||||
- cmd: appveyor PushArtifact "artifacts\EquinoxLabs.SVGSharpie.%APPVEYOR_BUILD_VERSION%.nupkg"
|
||||
|
|
|
@ -46,7 +46,7 @@ if ( ($targetFramework -eq "netcoreapp2.1") -and ($env:CI -eq "True") -and ($is3
|
|||
$testRunnerCmd = ".\tests\CodeCoverage\CodeCoverage.cmd"
|
||||
}
|
||||
elseif ($targetFramework -eq "mono") {
|
||||
$testDllPath = "$PSScriptRoot\tests\SVGSharpie.Tests\bin\Release\net462\SixLabors.ImageSharp.Tests.dll"
|
||||
$testDllPath = "$PSScriptRoot\tests\EquinoxLabs.SVGSharpie.ImageSharp.Tests\bin\Release\net462\EquinoxLabs.SVGSharpie.ImageSharp.Tests.dll"
|
||||
VerifyPath($testDllPath, "test dll missing:")
|
||||
|
||||
$xunitRunnerPath = "${env:HOMEPATH}\.nuget\packages\xunit.runner.console\2.3.1\tools\net452\"
|
||||
|
|
|
@ -6,26 +6,56 @@ using SixLabors.ImageSharp.Processing;
|
|||
|
||||
namespace EquinoxLabs.SVGSharpie.ImageSharp
|
||||
{
|
||||
/// <summary>
|
||||
/// SVG image renderer
|
||||
/// </summary>
|
||||
public static class SvgImageRenderer
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Render SVG from xml string
|
||||
/// </summary>
|
||||
/// <typeparam name="TPixel"></typeparam>
|
||||
/// <param name="content"></param>
|
||||
/// <returns></returns>
|
||||
public static Image<TPixel> RenderFromString<TPixel>(string content) where TPixel : struct, IPixel<TPixel>
|
||||
{
|
||||
var document = SvgDocument.Parse(content);
|
||||
return RenderInner<TPixel>(document, null, null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Render SVG from xml string
|
||||
/// </summary>
|
||||
/// <typeparam name="TPixel"></typeparam>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="width"></param>
|
||||
/// <param name="height"></param>
|
||||
/// <returns></returns>
|
||||
public static Image<TPixel> RenderFromString<TPixel>(string content, int width, int height) where TPixel : struct, IPixel<TPixel>
|
||||
{
|
||||
var document = SvgDocument.Parse(content);
|
||||
return RenderInner<TPixel>(document, width, height);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Render SVG from SvgDocument
|
||||
/// </summary>
|
||||
/// <typeparam name="TPixel"></typeparam>
|
||||
/// <param name="document"></param>
|
||||
/// <returns></returns>
|
||||
public static Image<TPixel> RenderFromDocument<TPixel>(SvgDocument document) where TPixel : struct, IPixel<TPixel>
|
||||
{
|
||||
return RenderInner<TPixel>(document, null, null);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Render SVG from SvgDocument
|
||||
/// </summary>
|
||||
/// <typeparam name="TPixel"></typeparam>
|
||||
/// <param name="document"></param>
|
||||
/// <param name="width"></param>
|
||||
/// <param name="height"></param>
|
||||
/// <returns></returns>
|
||||
public static Image<TPixel> RenderFromDocument<TPixel>(SvgDocument document, int width, int height) where TPixel : struct, IPixel<TPixel>
|
||||
{
|
||||
return RenderInner<TPixel>(document, width, height);
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
@echo off
|
||||
|
||||
|
||||
cd tests\CodeCoverage
|
||||
|
||||
nuget restore packages.config -PackagesDirectory .
|
||||
|
||||
cd ..
|
||||
cd ..
|
||||
|
||||
dotnet restore EquinoxLabs.SVGSharpie.sln
|
||||
rem Clean the solution to force a rebuild with /p:codecov=true
|
||||
dotnet clean EquinoxLabs.SVGSharpie.sln -c Release
|
||||
rem The -threshold options prevents this taking ages...
|
||||
tests\CodeCoverage\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test tests\EquinoxLabs.SVGSharpie.ImageSharp.Tests\EquinoxLabs.SVGSharpie.ImageSharp.Tests.csproj -c Release -f netcoreapp2.1 /p:codecov=true" -register:user -threshold:10 -oldStyle -safemode:off -output:.\SVGSharpie.Coverage.xml -hideskipped:All -returntargetcode -filter:"+[EquinoxLabs.SVGSharpie*]*"
|
||||
|
||||
if %errorlevel% neq 0 exit /b %errorlevel%
|
||||
|
||||
SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%
|
||||
pip install codecov
|
||||
codecov -f "SVGSharpie.Coverage.xml"
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="OpenCover" version="4.6.519" />
|
||||
</packages>
|
|
@ -0,0 +1,42 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>netcoreapp2.1;net462;net472</TargetFrameworks>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<DebugType Condition="$(codecov) != ''">full</DebugType>
|
||||
<DebugType Condition="$(codecov) == ''">portable</DebugType>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<RootNamespace>EquinoxLabs.SVGSharpie.ImageSharp.Tests</RootNamespace>
|
||||
<AssemblyName>EquinoxLabs.SVGSharpie.ImageSharp.Tests</AssemblyName>
|
||||
<Platforms>AnyCPU;x64;x86</Platforms>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<WarningsAsErrors />
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit" Version="2.3.1" />
|
||||
<PackageReference Include="xunit.runner.console" Version="2.3.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
|
||||
<PackageReference Include="Moq" Version="4.10.0" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\EquinoxLabs.SVGSharpie.ImageSharp\EquinoxLabs.SVGSharpie.ImageSharp.csproj" />
|
||||
<ProjectReference Include="..\..\src\EquinoxLabs.SVGSharpie\EquinoxLabs.SVGSharpie.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Xunit;
|
||||
|
||||
namespace EquinoxLabs.SVGSharpie.ImageSharp.Tests
|
||||
{
|
||||
public class Tests
|
||||
{
|
||||
[Fact]
|
||||
public void FileTest()
|
||||
{
|
||||
string path = Path.GetTempFileName();
|
||||
string testData = Guid.NewGuid().ToString();
|
||||
File.WriteAllText(path, testData);
|
||||
string data = File.ReadAllText(path);
|
||||
Assert.Equal(testData, data);
|
||||
File.Delete(path);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"shadowCopy": false,
|
||||
"methodDisplay": "method",
|
||||
"diagnosticMessages": true
|
||||
}
|
Загрузка…
Ссылка в новой задаче