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
6 changes: 5 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ jobs:
SUPER_BUSINESS_GUID: ${{ secrets.SUPER_BUSINESS_GUID }}
SUPER_USERNAME: ${{ secrets.SUPER_USERNAME }}
SUPER_PASSWORD: ${{ secrets.SUPER_PASSWORD }}
EPOSLOVANJE_USERNAME: ${{ secrets.EPOSLOVANJE_USERNAME }}
EPOSLOVANJE_PASSWORD: ${{ secrets.EPOSLOVANJE_PASSWORD }}
EPOSLOVANJE_API_KEY: ${{ secrets.EPOSLOVANJE_API_KEY }}
DOKU_API_KEY: ${{ secrets.DOKU_API_KEY }}

steps:
- name: Checkout repository
Expand All @@ -31,7 +35,7 @@ jobs:
run: dotnet restore MAES.Fiskal2.Tests/MAES.Fiskal2.Tests.csproj

- name: Run tests
run: dotnet test MAES.Fiskal2.Tests/MAES.Fiskal2.Tests.csproj --configuration Release --no-restore
run: dotnet test MAES.Fiskal2.Tests/MAES.Fiskal2.Tests.csproj --configuration Release --no-restore -v normal --logger "console;verbosity=detailed"

pack-and-publish:
name: Pack and publish package
Expand Down
73 changes: 0 additions & 73 deletions MAES.Fiskal2.Tests/Fiskal2Tests.cs

This file was deleted.

197 changes: 197 additions & 0 deletions MAES.Fiskal2.Tests/PosredniciTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@

using MAES.Fiskal2.Posrednici;
using Xunit.Abstractions;

namespace MAES.Fiskal2.Tests;

public class PosredniciTests
{
readonly List<Posrednik> posrednici =
[
new Super
{
BusinessGuid = Environment.GetEnvironmentVariable("SUPER_BUSINESS_GUID") ?? throw new InvalidOperationException("SUPER_BUSINESS_GUID environment variable is not set."),
Username = Environment.GetEnvironmentVariable("SUPER_USERNAME") ?? throw new InvalidOperationException("SUPER_USERNAME environment variable is not set."),
Password = Environment.GetEnvironmentVariable("SUPER_PASSWORD") ?? throw new InvalidOperationException("SUPER_PASSWORD environment variable is not set."),
IsDev = true
},
new EPoslovanje
{
ApiKey = Environment.GetEnvironmentVariable("EPOSLOVANJE_API_KEY") ?? throw new InvalidOperationException("EPOSLOVANJE_API_KEY environment variable is not set."),
IsDev = true
},
new Doku
{
ApiKey = Environment.GetEnvironmentVariable("DOKU_API_KEY") ?? throw new InvalidOperationException("DOKU_API_KEY environment variable is not set."),
IsDev = true
}
];

[Fact]
public async Task EvidentirajUBL()
{
var ubl = File.ReadAllText("ubl.xml");

foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
await posrednik.EvidentirajUBLAsync(ubl);
Console.WriteLine($"{posrednik.GetType().Name}: EvidentirajUBL OK");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: EvidentirajUBL FAIL {ex.Message}");
}
}
}

[Fact]
public async Task DohvatiIzlazneRacune()
{
foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
var izlazni = await posrednik.IzlazniListAsync(
DateTime.UtcNow.AddDays(-30),
DateTime.UtcNow);

Console.WriteLine($"{posrednik.GetType().Name}: IzlazniList OK ({izlazni.Count()})");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: IzlazniList FAIL {ex.Message}");
}
}
}

[Fact]
public async Task DohvatiPrviIzlazniPdfIUBL()
{
foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
var izlazni = await posrednik.IzlazniListAsync(
DateTime.UtcNow.AddDays(-30),
DateTime.UtcNow);

var first = izlazni.FirstOrDefault();

if (first == null)
{
Console.WriteLine($"{posrednik.GetType().Name}: nema izlaznih računa");
continue;
}

await posrednik.IzlazniPdfAsync(first.Id);
await posrednik.IzlazniUBLAsync(first.Id);

Console.WriteLine($"{posrednik.GetType().Name}: Izlazni PDF + UBL OK");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: Izlazni PDF + UBL FAIL {ex.Message}");
}
}
}

[Fact]
public async Task EvidentirajUplatu()
{
foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
var izlazni = await posrednik.IzlazniListAsync(
DateTime.UtcNow.AddDays(-30),
DateTime.UtcNow);

var first = izlazni.FirstOrDefault();

if (first == null)
{
Console.WriteLine($"{posrednik.GetType().Name}: nema izlaznih računa za uplatu");
continue;
}

await posrednik.EvidentirajUplatuAsync(
first.Id,
DateTime.UtcNow,
100,
NacinPlacanja.TransakcijskiRaCun);

Console.WriteLine($"{posrednik.GetType().Name}: EvidentirajUplatu OK");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: EvidentirajUplatu FAIL {ex.Message}");
}
}
}

[Fact]
public async Task UlazniRacuni()
{
foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
var ulazni = await posrednik.UlazniListAsync(
DateTime.UtcNow.AddDays(-30),
DateTime.UtcNow);

var first = ulazni.FirstOrDefault();

if (first == null)
{
Console.WriteLine($"{posrednik.GetType().Name}: nema ulaznih računa");
continue;
}

await posrednik.UlazniPdfAsync(first.Id);
await posrednik.UlazniUBLAsync(first.Id);

Console.WriteLine($"{posrednik.GetType().Name}: Ulazni PDF + UBL OK");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: Ulazni PDF + UBL FAIL {ex.Message}");
}
}
}

[Fact]
public async Task OdbijPrviUlazniRacun()
{
foreach (var posrednik in posrednici.Where(p => p is not Fina))
{
try
{
var ulazni = await posrednik.UlazniListAsync(
DateTime.UtcNow.AddDays(-30),
DateTime.UtcNow);

var first = ulazni.FirstOrDefault();

if (first == null)
{
Console.WriteLine($"{posrednik.GetType().Name}: nema ulaznih za odbijanje");
continue;
}

await posrednik.OdbijRacunAsync(
first.Id,
RazlogOdbijanja.NeusklađenostKojaNeUtjeceNaObracunPoreza,
"Nedostaje OIB");

Console.WriteLine($"{posrednik.GetType().Name}: OdbijRacun OK");
}
catch (Exception ex)
{
Console.WriteLine($"{posrednik.GetType().Name}: OdbijRacun FAIL {ex.Message}");
}
}
}
}
2 changes: 1 addition & 1 deletion MAES.Fiskal2/MAES.Fiskal2.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

<!-- NuGet Metadata -->
<PackageId>MAES.Fiskal2</PackageId>
<Version>0.3.0</Version>
<Version>0.4.0</Version>
<Authors>Roko Tomović</Authors>
<Company>MAES</Company>
<Description>C# biblioteka za rad s Hrvatskim fiskalnim posrednicima</Description>
Expand Down
Loading
Loading