Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: .NET Test

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:

jobs:
test:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'

- name: Restore dependencies
run: dotnet restore

- name: Build project
run: dotnet build --configuration Release --no-restore

- name: Run tests
run: dotnet test --configuration Release --no-build --verbosity normal
33 changes: 33 additions & 0 deletions AupRename.Tests/AupRename.Tests.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>

<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.4">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
<PackageReference Include="xunit" Version="2.9.3" />
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\AupRename\AupRename.csproj" />
</ItemGroup>

<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>

</Project>
17 changes: 17 additions & 0 deletions AupRename.Tests/EncodingFixture.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Threading.Tasks;

namespace AupRename.Tests
{
public class EncodingFixture
{
public EncodingFixture()
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
}
}
}
25 changes: 25 additions & 0 deletions AupRename.Tests/ExEditHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using Karoterra.AupDotNet.ExEdit;
using Karoterra.AupDotNet.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AupRename.Tests
{
internal class ExEditHelper
{
public static TimelineObject CreateTimelineObject()
{
var data = new byte[0x5C8];
for (int i = 0; i < TimelineObject.MaxEffect; i++)
{
int typeIndex = -1;
typeIndex.ToBytes().CopyTo(data, 0x54 + i * 12);
}
List<EffectType> effectTypes = [];
return new TimelineObject(data, 0, effectTypes);
}
}
}
33 changes: 33 additions & 0 deletions AupRename.Tests/PsdToolKitProjectTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using Karoterra.AupDotNet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AupRename.Tests
{
public class PsdToolKitProjectTest
{
[Fact]
public void Test_DumpData()
{
var json = string.Join("",
"[{",
"\"Image\":{",
"\"Version\":1,",
@"""FilePath"":""C:\\path\\to\\テスト.psd"",",
"\"Layer\":{},",
"\"PFV\":{\"Node\":null,\"FaviewNode\":null}",
"},",
"\"Tag\":676809393,",
"\"Thumbnail\":\"\"",
"}]\n"
);
var filter = new PsdToolKitProject(new RawFilterProject("PSDToolKit", Encoding.UTF8.GetBytes(json)));
var dumpedJson = Encoding.UTF8.GetString(filter.DumpData());
Assert.Single(filter.Images);
Assert.Equal(json, dumpedJson);
}
}
}
66 changes: 66 additions & 0 deletions AupRename.Tests/RenameItems/AudioFileRenameItemTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using AupRename.RenameItems;
using Karoterra.AupDotNet.ExEdit.Effects;

namespace AupRename.Tests.RenameItems
{
public class AudioFileRenameItemTest : IClassFixture<EncodingFixture>
{
[Fact]
public void Test_CreateIfTarget_InvalidEffect()
{
var effect = new ImageFileEffect
{
Filename = "test.png"
};
var item = AudioFileRenameItem.CreateIfTarget(effect);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_FilenameIsEmpty()
{
var effect = new AudioFileEffect
{
Filename = ""
};
var item = AudioFileRenameItem.CreateIfTarget(effect);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_Success()
{
var effect = new AudioFileEffect
{
Filename = "test.wav"
};
var item = AudioFileRenameItem.CreateIfTarget(effect);
Assert.NotNull(item);
}

[Fact]
public void Test_Rename()
{
var effect = new AudioFileEffect
{
Filename = "test.wav"
};
var item = new AudioFileRenameItem(effect);
item.Rename("test_new.wav");
Assert.Equal("test_new.wav", effect.Filename);
}

[Fact]
public void Test_Revert()
{
var effect = new AudioFileEffect
{
Filename = "test.wav"
};
var item = new AudioFileRenameItem(effect);
item.Rename("test_new.wav");
item.Revert();
Assert.Equal("test.wav", effect.Filename);
}
}
}
66 changes: 66 additions & 0 deletions AupRename.Tests/RenameItems/BorderRenameItemTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
using AupRename.RenameItems;
using Karoterra.AupDotNet.ExEdit.Effects;

namespace AupRename.Tests.RenameItems
{
public class BorderRenameItemTest : IClassFixture<EncodingFixture>
{
[Fact]
public void Test_CreateIfTarget_InvalidEffect()
{
var effect = new ImageFileEffect
{
Filename = "test.png"
};
var item = BorderRenameItem.CreateIfTarget(effect);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_FilenameIsEmpty()
{
var effect = new BorderEffect
{
Filename = ""
};
var item = BorderRenameItem.CreateIfTarget(effect);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_Success()
{
var effect = new BorderEffect
{
Filename = "test.png"
};
var item = BorderRenameItem.CreateIfTarget(effect);
Assert.NotNull(item);
}

[Fact]
public void Test_Rename()
{
var effect = new BorderEffect
{
Filename = "test.png"
};
var item = new BorderRenameItem(effect);
item.Rename("test_new.png");
Assert.Equal("test_new.png", effect.Filename);
}

[Fact]
public void Test_Revert()
{
var effect = new BorderEffect
{
Filename = "test.png"
};
var item = new BorderRenameItem(effect);
item.Rename("test_new.png");
item.Revert();
Assert.Equal("test.png", effect.Filename);
}
}
}
92 changes: 92 additions & 0 deletions AupRename.Tests/RenameItems/DisplacementRenameItemTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
using AupRename.RenameItems;
using Karoterra.AupDotNet.ExEdit.Effects;

namespace AupRename.Tests.RenameItems
{
public class DisplacementRenameItemTest : IClassFixture<EncodingFixture>
{
[Fact]
public void Test_CreateIfTarget_InvalidEffect()
{
var effect = new ImageFileEffect
{
Filename = "test.png"
};
var item = DisplacementRenameItem.CreateIfTarget(effect);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_NameIsEmpty()
{
var effect = new DisplacementEffect
{
Name = "",
};
var item = DisplacementRenameItem.CreateIfTarget(effect);
Assert.Equal(FigureNameType.BuiltIn, effect.NameType);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_FilenameIsEmpty()
{
var effect = new DisplacementEffect
{
Filename = "",
};
var item = DisplacementRenameItem.CreateIfTarget(effect);
Assert.Equal(FigureNameType.File, effect.NameType);
Assert.Null(item);
}

[Fact]
public void Test_CreateIfTarget_Success_Figure()
{
var effect = new DisplacementEffect
{
Name = "test",
};
var item = DisplacementRenameItem.CreateIfTarget(effect);
Assert.Equal(FigureNameType.Figure, effect.NameType);
Assert.NotNull(item);
}

[Fact]
public void Test_CreateIfTarget_Success_File()
{
var effect = new DisplacementEffect
{
Filename = @"C:\test.png",
};
var item = DisplacementRenameItem.CreateIfTarget(effect);
Assert.Equal(FigureNameType.File, effect.NameType);
Assert.NotNull(item);
}

[Fact]
public void Test_Rename()
{
var effect = new DisplacementEffect
{
Name = "test"
};
var item = new DisplacementRenameItem(effect);
item.Rename("test_new");
Assert.Equal("test_new", effect.Name);
}

[Fact]
public void Test_Revert()
{
var effect = new DisplacementEffect
{
Name = "test"
};
var item = new DisplacementRenameItem(effect);
item.Rename("test_new");
item.Revert();
Assert.Equal("test", effect.Name);
}
}
}
Loading