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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion sandbox/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ dotnet/*
!dotnet/hellosign_sandbox.csproj
!dotnet/NuGet.Config
!dotnet/Program.cs
!dotnet/src/Dropbox.SignSandbox.Test
!dotnet/src
!dotnet/test_fixtures

java-v1/*
Expand Down
36 changes: 0 additions & 36 deletions sandbox/dotnet/Program.cs

This file was deleted.

14 changes: 0 additions & 14 deletions sandbox/dotnet/dropbox_sign_sandbox.csproj

This file was deleted.

6 changes: 6 additions & 0 deletions sandbox/dotnet/src/Dropbox.SignSandbox.Test/.config.dist.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"BASE_URL": "https://api.hellosign.com/v3",
"API_KEY": "",
"CLIENT_ID": "",
"USE_XDEBUG": 0
}
1 change: 1 addition & 0 deletions sandbox/dotnet/src/Dropbox.SignSandbox.Test/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<AssemblyName>Dropbox.SignSandbox.Test</AssemblyName>
<RootNamespace>Dropbox.SignSandbox.Test</RootNamespace>
<TargetFramework>net6.0</TargetFramework>
<IsPackable>false</IsPackable>
<PackageId>Dropbox.SignSandbox.Test</PackageId>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="JsonDiffPatch.Net" Version="2.3.0" />
<PackageReference Include="JsonSubTypes" Version="2.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="RichardSzalay.MockHttp" Version="7.0.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Dropbox.SignSandbox\Dropbox.SignSandbox.csproj" />
</ItemGroup>
</Project>
168 changes: 168 additions & 0 deletions sandbox/dotnet/src/Dropbox.SignSandbox.Test/SignatureRequestTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using Xunit;
using Dropbox.Sign;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace Dropbox.SignSandbox.Test
{
public class TestHelper
{
public static JObject GetJsonContents(string fileName)
{
using (var r = new StreamReader( $"./../../../../../{fileName}"))
{
dynamic json = JsonConvert.DeserializeObject<object>(r.ReadToEnd());
Assert.NotNull(json);

return json;
}
}

public static JObject GetConfig()
{
dynamic configCustom = GetJsonContents("src/Dropbox.SignSandbox.Test/.config.json");
dynamic configDist = GetJsonContents("src/Dropbox.SignSandbox.Test/.config.dist.json");

var mergeSettings = new JsonMergeSettings
{
MergeArrayHandling = MergeArrayHandling.Union
};

configDist.Merge(configCustom, mergeSettings);

return configDist;
}
}

public class SignatureRequestTests
{
[Fact]
public void SendTest()
{
dynamic config_merged = TestHelper.GetConfig();

var config = new Sign.Client.Configuration();
config.Username = config_merged["API_KEY"];
config.BasePath = config_merged["BASE_URL"];

var signatureRequestApi = new Sign.Api.SignatureRequestApi(config);

var data = TestHelper.GetJsonContents("test_fixtures/SignatureRequestSendRequest.json");

var sendRequest = Sign.Model.SignatureRequestSendRequest.Init(data.ToString());

sendRequest.Files = new List<Stream> {
new FileStream(
"./../../../../../test_fixtures/pdf-sample.pdf",
FileMode.Open,
FileAccess.Read,
FileShare.Read
)
};

var sendResponse = signatureRequestApi.SignatureRequestSend(sendRequest);

Assert.Equal(
sendRequest.FormFieldsPerDocument[0].ApiId,
sendResponse.SignatureRequest.CustomFields[0].ApiId
);

Assert.Equal(
sendRequest.Signers[0].EmailAddress,
sendResponse.SignatureRequest.Signatures[0].SignerEmailAddress
);
Assert.Equal(
sendRequest.Signers[1].EmailAddress,
sendResponse.SignatureRequest.Signatures[1].SignerEmailAddress
);
Assert.Equal(
sendRequest.Signers[2].EmailAddress,
sendResponse.SignatureRequest.Signatures[2].SignerEmailAddress
);

var getResponse = signatureRequestApi.SignatureRequestGet(sendResponse.SignatureRequest.SignatureRequestId);

Assert.Equal(
sendResponse.SignatureRequest.SignatureRequestId,
getResponse.SignatureRequest.SignatureRequestId
);
}

[Fact]
public void CreateEmbeddedTest()
{
dynamic config_merged = TestHelper.GetConfig();

var config = new Sign.Client.Configuration();
config.Username = config_merged["API_KEY"];
config.BasePath = config_merged["BASE_URL"];

var signatureRequestApi = new Sign.Api.SignatureRequestApi(config);

var data = TestHelper.GetJsonContents("test_fixtures/SignatureRequestSendRequest.json");
data["client_id"] = config_merged["CLIENT_ID"];

var sendRequest = Sign.Model.SignatureRequestCreateEmbeddedRequest.Init(data.ToString());

sendRequest.Files = new List<Stream> {
new FileStream(
"./../../../../../test_fixtures/pdf-sample.pdf",
FileMode.Open,
FileAccess.Read,
FileShare.Read
)
};

var sendResponse = signatureRequestApi.SignatureRequestCreateEmbedded(sendRequest);

Assert.Equal(
sendRequest.Signers[0].EmailAddress,
sendResponse.SignatureRequest.Signatures[0].SignerEmailAddress
);
Assert.Equal(
sendRequest.Signers[1].EmailAddress,
sendResponse.SignatureRequest.Signatures[1].SignerEmailAddress
);
Assert.Equal(
sendRequest.Signers[2].EmailAddress,
sendResponse.SignatureRequest.Signatures[2].SignerEmailAddress
);

var embeddedApi = new Sign.Api.EmbeddedApi(config);

var getResponse = embeddedApi.EmbeddedSignUrl(sendResponse.SignatureRequest.Signatures[0].SignatureId);

Assert.NotEmpty(getResponse.Embedded.SignUrl);
}

[Fact]
public void SendWithoutFillErrorTest()
{
dynamic config_merged = TestHelper.GetConfig();

var config = new Sign.Client.Configuration();
config.Username = config_merged["API_KEY"];
config.BasePath = config_merged["BASE_URL"];

var signatureRequestApi = new Sign.Api.SignatureRequestApi(config);

var data = TestHelper.GetJsonContents("test_fixtures/SignatureRequestSendRequest.json");

var sendRequest = Sign.Model.SignatureRequestSendRequest.Init(data.ToString());

try
{
signatureRequestApi.SignatureRequestSend(sendRequest);
Assert.True(false);
}
catch (Sign.Client.ApiException e)
{
Assert.Equal("file", e.ErrorContent.Error.ErrorPath);
}
}
}
}
18 changes: 18 additions & 0 deletions sandbox/dotnet/src/Dropbox.SignSandbox/Dropbox.SignSandbox.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo><!-- setting GenerateAssemblyInfo to false causes this bug https://github.com/dotnet/project-system/issues/3934 -->
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>Dropbox.SignSandbox</AssemblyName>
<PackageId>Dropbox.SignSandbox</PackageId>
<OutputType>Library</OutputType>
<RootNamespace>Dropbox.SignSandbox</RootNamespace>
<IsPackable>false</IsPackable>
<Nullable>annotations</Nullable>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Dropbox.Sign" Version="1.0.*" />
</ItemGroup>
</Project>
39 changes: 39 additions & 0 deletions sandbox/dotnet/src/Dropbox.SignSandbox/Program.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
using System;

using Dropbox.Sign.Api;
using Dropbox.Sign.Client;
using Dropbox.Sign.Model;

namespace Dropbox.SignSandbox
{
public class Example
{
public static void Main()
{
var config = new Configuration();
// Configure HTTP basic authorization: api_key
config.Username = "YOUR_API_KEY";

// or, configure Bearer (JWT) authorization: oauth2
// config.AccessToken = "YOUR_BEARER_TOKEN";

var apiInstance = new AccountApi(config);

var data = new AccountCreateRequest(
emailAddress: "newuser@dropboxsign.com"
);

try
{
var result = apiInstance.AccountCreate(data);
Console.WriteLine(result);
}
catch (ApiException e)
{
Console.WriteLine("Exception when calling Dropbox Sign API: " + e.Message);
Console.WriteLine("Status Code: " + e.ErrorCode);
Console.WriteLine(e.StackTrace);
}
}
}
}
3 changes: 2 additions & 1 deletion sdks/dotnet/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ x86/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
#[Bb]in/
[Oo]bj/
[Ll]og/
[Ll]ogs/
Expand Down Expand Up @@ -361,5 +362,5 @@ MigrationBackup/
FodyWeavers.xsd

vendor

api
.openapi-generator
Loading