Skip to content
Open
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
2 changes: 2 additions & 0 deletions Runtime/Client/DotNetStandardClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public Task<HttpResponseMessage> Post(FileInfo minidumpFileInfo, IReportPostOpti

private ExceptionPostOptions CreateExceptionPostOptions(IReportPostOptions options)
{
options ??= new ReportPostOptions();
var exceptionPostOptions = new ExceptionPostOptions();

foreach (var attribute in options.AdditionalAttributes)
Expand All @@ -63,6 +64,7 @@ private ExceptionPostOptions CreateExceptionPostOptions(IReportPostOptions optio

private MinidumpPostOptions CreateMinidumpPostOptions(IReportPostOptions options)
{
options ??= new ReportPostOptions();
var minidumpPostOptions = new MinidumpPostOptions();

foreach (var attribute in options.AdditionalAttributes)
Expand Down
50 changes: 50 additions & 0 deletions Tests/Runtime/Client/DotNetStandardClientTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
using BugSplatDotNetStandard;
using BugSplatUnity.Runtime.Client;
using BugSplatUnity.RuntimeTests.Client.Fakes;
using NUnit.Framework;
using System;
using System.IO;
using System.Threading.Tasks;

namespace BugSplatUnity.RuntimeTests.Client
{
public class DotNetStandardClientTests
{
[Test]
public void Post_WithStackTraceNullOptions_ShouldCreateOptions()
{
var bugSplat = new FakeBugSplat("db", "app", "1.0");
var sut = new DotNetStandardClient(bugSplat);

sut.Post("stackTrace");

Assert.IsNotEmpty(bugSplat.ExceptionCalls);
Assert.NotNull(bugSplat.ExceptionCalls[0].Options);
}

[Test]
public void Post_WithExceptionNullOptions_ShouldCreateOptions()
{
var bugSplat = new FakeBugSplat("db", "app", "1.0");
var sut = new DotNetStandardClient(bugSplat);

sut.Post(new Exception("oops"));

Assert.IsNotEmpty(bugSplat.ExceptionCalls);
Assert.NotNull(bugSplat.ExceptionCalls[0].Options);
}

[Test]
public void Post_WithMinidumpNullOptions_ShouldCreateOptions()
{
var bugSplat = new FakeBugSplat("db", "app", "1.0");
var sut = new DotNetStandardClient(bugSplat);
var file = new FileInfo("test.dmp");

sut.Post(file);

Assert.IsNotEmpty(bugSplat.MinidumpCalls);
Assert.NotNull(bugSplat.MinidumpCalls[0].Options);
}
}
}
11 changes: 11 additions & 0 deletions Tests/Runtime/Client/DotNetStandardClientTests.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 51 additions & 0 deletions Tests/Runtime/Client/Fakes/FakeBugSplat.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
using BugSplatDotNetStandard;
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

namespace BugSplatUnity.RuntimeTests.Client.Fakes
{
class FakeBugSplat : BugSplat
{
public List<ExceptionPostCall> ExceptionCalls { get; } = new List<ExceptionPostCall>();
public List<MinidumpPostCall> MinidumpCalls { get; } = new List<MinidumpPostCall>();

public FakeBugSplat(string database, string application, string version)
: base(database, application, version)
{
}

public override Task<HttpResponseMessage> Post(string stackTrace, ExceptionPostOptions options)
{
ExceptionCalls.Add(new ExceptionPostCall { StackTrace = stackTrace, Options = options });
return Task.FromResult(new HttpResponseMessage());
}

public override Task<HttpResponseMessage> Post(Exception ex, ExceptionPostOptions options)
{
ExceptionCalls.Add(new ExceptionPostCall { Exception = ex, Options = options });
return Task.FromResult(new HttpResponseMessage());
}

public override Task<HttpResponseMessage> Post(FileInfo minidumpFileInfo, MinidumpPostOptions options)
{
MinidumpCalls.Add(new MinidumpPostCall { MinidumpFileInfo = minidumpFileInfo, Options = options });
return Task.FromResult(new HttpResponseMessage());
}
}

class ExceptionPostCall
{
public string StackTrace { get; set; }
public Exception Exception { get; set; }
public ExceptionPostOptions Options { get; set; }
}

class MinidumpPostCall
{
public FileInfo MinidumpFileInfo { get; set; }
public MinidumpPostOptions Options { get; set; }
}
}
11 changes: 11 additions & 0 deletions Tests/Runtime/Client/Fakes/FakeBugSplat.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.