Kaynağa Gözat

Added ReadNoAttributes

Piotr Czajkowski 1 hafta önce
ebeveyn
işleme
9b313ecfba

+ 3 - 0
ExcelORM/ExcelORMTests/ExcelORMTests.csproj

@@ -65,6 +65,9 @@
       <None Update="testFiles\fallBackToPropertyName.xlsx">
         <CopyToOutputDirectory>Always</CopyToOutputDirectory>
       </None>
+      <None Update="testFiles\firstNoAttributes.xlsx">
+        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+      </None>
     </ItemGroup>
 
     <ItemGroup>

+ 10 - 0
ExcelORM/ExcelORMTests/Models/TestNoAttributes.cs

@@ -0,0 +1,10 @@
+namespace ExcelORMTests;
+
+public record TestNoAttributes
+{
+    public string? name { get; set; }
+
+    public string? SurName { get; set; }
+
+    public string? joB { get; set; }
+}

+ 35 - 15
ExcelORM/ExcelORMTests/ReaderTests.cs

@@ -5,6 +5,7 @@ namespace ExcelORMTests;
 public class ReaderTests
 {
     private const string RegularFile = "testFiles/first.xlsx";
+    private const string RegularFileNoAttributes = "testFiles/firstNoAttributes.xlsx";
     private const string HiddenFile = "testFiles/hidden.xlsx";
     private const string FilteredFile = "testFiles/filtered.xlsx";
     private const string DifficultFile = "testFiles/columnsOnTheLeftHeaderNotFirstRow.xlsx";
@@ -13,7 +14,7 @@ public class ReaderTests
     private const string WithFormulaFile = "testFiles/withFormula.xlsx";
     private const string AdditionalTypes = "testFiles/additionalTypes.xlsx";
     private const string FallBackToPropertyName = "testFiles/fallBackToPropertyName.xlsx";
-    
+
     [Fact]
     public void Read()
     {
@@ -21,7 +22,7 @@ public class ReaderTests
         var results = reader.Read<Test>().ToArray();
         Assert.NotEmpty(results);
     }
-    
+
     [Fact]
     public void ReadHidden()
     {
@@ -34,7 +35,7 @@ public class ReaderTests
         Assert.NotEmpty(resultsHidden);
         Assert.NotEqual(results.Length, resultsHidden.Length);
     }
-    
+
     [Fact]
     public void ReadFiltered()
     {
@@ -47,7 +48,7 @@ public class ReaderTests
         Assert.NotEmpty(resultsFiltered);
         Assert.NotEqual(results.Length, resultsFiltered.Length);
     }
-    
+
     [Fact]
     public void ReadDifficult()
     {
@@ -64,7 +65,7 @@ public class ReaderTests
         Assert.All(resultsBadHeader, x => Assert.Null(x.Surname));
         Assert.All(resultsBadHeader, x => Assert.NotNull(x.Job));
     }
-    
+
     [Fact]
     public void ReadMultipleSheets()
     {
@@ -73,7 +74,7 @@ public class ReaderTests
         Assert.NotEmpty(results);
         Assert.Equal(6, results.Length);
     }
-    
+
     [Fact]
     public void ReadDifferentTypes()
     {
@@ -111,7 +112,7 @@ public class ReaderTests
         var results = reader.Read<TestWithFormula>().ToArray();
         Assert.NotEmpty(results);
     }
-    
+
     [Fact]
     public void ReadAdditionalTypes()
     {
@@ -119,7 +120,7 @@ public class ReaderTests
         var results = reader.Read<TestAdditionalTypes>().ToArray();
         Assert.NotEmpty(results);
     }
-    
+
     [Fact]
     public void ReadAdditionalTypesNullable()
     {
@@ -127,9 +128,9 @@ public class ReaderTests
         var results = reader.Read<TestAdditionalTypesNullable>().ToArray();
         Assert.NotEmpty(results);
     }
-    
+
     private const string EmptyFileForAppend = "testFiles/emptyForAppend.xlsx";
-    
+
     [Fact]
     public void ReadEmptyFile()
     {
@@ -137,30 +138,30 @@ public class ReaderTests
         var results = reader.Read<Test>().ToArray();
         Assert.Empty(results);
     }
-    
+
     [Fact]
     public void ReadData()
     {
         var results = ExcelReader.ReadData<Test>(RegularFile).ToArray();
         Assert.NotEmpty(results);
-        
+
         using var workbook = new XLWorkbook(RegularFile);
         var resultsWorkbook = ExcelReader.ReadData<Test>(workbook).ToArray();
         Assert.NotEmpty(resultsWorkbook);
         Assert.Equal(results, resultsWorkbook);
     }
-    
+
     [Fact]
     public void FallbackToPropertyName()
     {
         using var reader = new ExcelReader(FallBackToPropertyName);
         var resultsNoFallback = reader.Read<Test>().ToArray();
         Assert.NotEmpty(resultsNoFallback);
-        
+
         reader.FallbackToPropertyName = true;
         var resultsFallback = reader.Read<Test>().ToArray();
         Assert.NotEmpty(resultsFallback);
-        
+
         for (var i = 0; i < resultsNoFallback.Length; i++)
         {
             Assert.NotEqual(resultsNoFallback[i].Name, resultsFallback[i].Name);
@@ -168,4 +169,23 @@ public class ReaderTests
             Assert.Equal(resultsNoFallback[i].Job, resultsFallback[i].Job);
         }
     }
+    
+    [Fact]
+    public void ReadNoAttributes()
+    {
+        using var reader = new ExcelReader(RegularFile);
+        var results = reader.Read<Test>().ToArray();
+        Assert.NotEmpty(results);
+        
+        using var readerNoAttributes = new ExcelReader(RegularFileNoAttributes);
+        var resultsNoAttributes = readerNoAttributes.Read<TestNoAttributes>().ToArray();
+        Assert.NotEmpty(resultsNoAttributes);
+        
+        for (var i = 0; i < results.Length; i++)
+        {
+            Assert.Equal(results[i].Name, resultsNoAttributes[i].name);
+            Assert.Equal(results[i].Surname, resultsNoAttributes[i].SurName);
+            Assert.Equal(results[i].Job, resultsNoAttributes[i].joB);
+        }
+    }
 }

BIN
ExcelORM/ExcelORMTests/testFiles/firstNoAttributes.xlsx