Piotr Czajkowski преди 1 година
родител
ревизия
952c73372f

+ 6 - 0
ExcelORM/ExcelORM.sln

@@ -2,6 +2,8 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExcelORM", "ExcelORM\ExcelORM.csproj", "{D6FA68D9-2FBA-4C04-9103-EFCFF2C27F73}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExcelORMTests", "ExcelORMTests\ExcelORMTests.csproj", "{45D6D2D6-569A-4767-AE95-6E742973F5F0}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -12,5 +14,9 @@ Global
 		{D6FA68D9-2FBA-4C04-9103-EFCFF2C27F73}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{D6FA68D9-2FBA-4C04-9103-EFCFF2C27F73}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{D6FA68D9-2FBA-4C04-9103-EFCFF2C27F73}.Release|Any CPU.Build.0 = Release|Any CPU
+		{45D6D2D6-569A-4767-AE95-6E742973F5F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{45D6D2D6-569A-4767-AE95-6E742973F5F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{45D6D2D6-569A-4767-AE95-6E742973F5F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{45D6D2D6-569A-4767-AE95-6E742973F5F0}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 EndGlobal

+ 42 - 0
ExcelORM/ExcelORMTests/ExcelORMTests.csproj

@@ -0,0 +1,42 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+    <PropertyGroup>
+        <TargetFramework>net7.0</TargetFramework>
+        <ImplicitUsings>enable</ImplicitUsings>
+        <Nullable>enable</Nullable>
+
+        <IsPackable>false</IsPackable>
+        <IsTestProject>true</IsTestProject>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0"/>
+        <PackageReference Include="xunit" Version="2.4.2"/>
+        <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+            <PrivateAssets>all</PrivateAssets>
+        </PackageReference>
+        <PackageReference Include="coverlet.collector" Version="3.2.0">
+            <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
+            <PrivateAssets>all</PrivateAssets>
+        </PackageReference>
+    </ItemGroup>
+
+    <ItemGroup>
+      <Folder Include="testFiles\" />
+    </ItemGroup>
+
+    <ItemGroup>
+      <None Update="testFiles\filtered.xlsx">
+        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      </None>
+      <None Update="testFiles\first.xlsx">
+        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      </None>
+    </ItemGroup>
+
+    <ItemGroup>
+      <ProjectReference Include="..\ExcelORM\ExcelORM.csproj" />
+    </ItemGroup>
+
+</Project>

+ 44 - 0
ExcelORM/ExcelORMTests/ReaderWriterTests.cs

@@ -0,0 +1,44 @@
+using ExcelORM;
+
+namespace ExcelORMTests;
+
+public class ReaderWriterTests
+{
+    private const string regularFile = "testFiles/first.xlsx";
+    private const string filteredFile = "testFiles/filtered.xlsx";
+    
+    class Test
+    {
+        [Column("First name" )]
+        public string? Name { get; set; }
+
+        [Column("Last name")]
+        public string? Source { get; set; }
+
+        [Column(new string[]{"Occupation", "Job"})]
+        public string? Target { get; set; }
+    }
+    
+    [Fact]
+    public void Read()
+    {
+        var reader = new ExcelReader(regularFile);
+        var results = reader.Read<Test>();
+        Assert.NotNull(results);
+        Assert.NotEmpty(results);
+    }
+    
+    [Fact]
+    public void ReadFiltered()
+    {
+        var reader = new ExcelReader(filteredFile);
+        var results = reader.Read<Test>();
+        Assert.NotNull(results);
+        Assert.NotEmpty(results);
+
+        var readerFilter = new ExcelReader(filteredFile) { ObeyFilter = true };
+        var resultsFiltered = readerFilter.Read<Test>();
+        Assert.NotNull(resultsFiltered);
+        Assert.NotEmpty(resultsFiltered);
+    }
+}

+ 1 - 0
ExcelORM/ExcelORMTests/Usings.cs

@@ -0,0 +1 @@
+global using Xunit;

BIN
ExcelORM/ExcelORMTests/testFiles/filtered.xlsx


BIN
ExcelORM/ExcelORMTests/testFiles/first.xlsx