diff --git a/.circleci/config.yml b/.circleci/config.yml
index 8508e948..a7a3928c 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -49,7 +49,7 @@ jobs:
test:
working_directory: /test
docker:
- - image: microsoft/dotnet:1.1.1-sdk
+ - image: microsoft/dotnet:2.1-sdk
environment:
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_CLI_TELEMETRY_OUTPUT: 1
diff --git a/Analytics.Net35/Analytics.Net35.csproj b/Analytics.Net35/Analytics.Net35.csproj
index 3cae6e08..197dadb9 100644
--- a/Analytics.Net35/Analytics.Net35.csproj
+++ b/Analytics.Net35/Analytics.Net35.csproj
@@ -32,5 +32,13 @@
+
+
+ <_Parameter1>Test.Net35
+
+
+ <_Parameter1>DynamicProxyGenAssembly2
+
+
diff --git a/Analytics.Net45/Analytics.Net45.csproj b/Analytics.Net45/Analytics.Net45.csproj
index cf6b715f..3dfb6551 100644
--- a/Analytics.Net45/Analytics.Net45.csproj
+++ b/Analytics.Net45/Analytics.Net45.csproj
@@ -33,4 +33,12 @@
+
+
+ <_Parameter1>Test.Net45
+
+
+ <_Parameter1>DynamicProxyGenAssembly2
+
+
diff --git a/Analytics.NetStandard20/Analytics.NetStandard20.csproj b/Analytics.NetStandard20/Analytics.NetStandard20.csproj
index 8ac0d235..9c9200ed 100644
--- a/Analytics.NetStandard20/Analytics.NetStandard20.csproj
+++ b/Analytics.NetStandard20/Analytics.NetStandard20.csproj
@@ -38,5 +38,8 @@
<_Parameter1>Test.NetStandard20
+
+ <_Parameter1>DynamicProxyGenAssembly2
+
diff --git a/Analytics.Portable/Analytics.Portable.csproj b/Analytics.Portable/Analytics.Portable.csproj
index 2f8d9a3d..14e3df34 100644
--- a/Analytics.Portable/Analytics.Portable.csproj
+++ b/Analytics.Portable/Analytics.Portable.csproj
@@ -36,6 +36,7 @@
+
diff --git a/Analytics.Portable/_AssemblyConfiguration.cs b/Analytics.Portable/_AssemblyConfiguration.cs
new file mode 100644
index 00000000..20f0077e
--- /dev/null
+++ b/Analytics.Portable/_AssemblyConfiguration.cs
@@ -0,0 +1,7 @@
+using System.Runtime.CompilerServices;
+
+[assembly: InternalsVisibleTo("Test.UniversalApp")]
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
+namespace Analytics
+{
+}
diff --git a/Analytics/Analytics.cs b/Analytics/Analytics.cs
index 484800ca..70e82353 100644
--- a/Analytics/Analytics.cs
+++ b/Analytics/Analytics.cs
@@ -1,7 +1,3 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
namespace Segment
{
public class Analytics
@@ -48,6 +44,17 @@ public static void Initialize(string writeKey, Config config)
}
}
+ internal static void Initialize(Client client)
+ {
+ lock (padlock)
+ {
+ if (Client == null)
+ {
+ Client = client;
+ }
+ }
+ }
+
///
/// Disposes of the current client and allows the creation of a new one
///
diff --git a/Analytics/Analytics.csproj b/Analytics/Analytics.csproj
index d39703ab..01afffc9 100644
--- a/Analytics/Analytics.csproj
+++ b/Analytics/Analytics.csproj
@@ -27,5 +27,13 @@
+
+
+ <_Parameter1>Test
+
+
+ <_Parameter1>DynamicProxyGenAssembly2
+
+
diff --git a/Analytics/Client.cs b/Analytics/Client.cs
index 9990df2d..05169e4b 100644
--- a/Analytics/Client.cs
+++ b/Analytics/Client.cs
@@ -42,17 +42,22 @@ public class Client : IDisposable
///
///
///
- public Client(string writeKey, Config config)
+ public Client(string writeKey, Config config) : this(writeKey, config, null)
{
- if (String.IsNullOrEmpty(writeKey))
+ if (string.IsNullOrEmpty(writeKey))
throw new InvalidOperationException("Please supply a valid writeKey to initialize.");
+ }
+
+ internal Client(string writeKey, Config config, IRequestHandler requestHandler)
+ {
+
this.Statistics = new Statistics();
this._writeKey = writeKey;
this._config = config;
- IRequestHandler requestHandler = new BlockingRequestHandler(this, config.Timeout);
+ requestHandler = requestHandler ?? new BlockingRequestHandler(this, config.Timeout);
IBatchFactory batchFactory = new SimpleBatchFactory(this._writeKey);
if (config.Async)
diff --git a/Test.Net35/ActionTests.cs b/Test.Net35/ActionTests.cs
index 032cbb0e..3e4724ab 100644
--- a/Test.Net35/ActionTests.cs
+++ b/Test.Net35/ActionTests.cs
@@ -2,18 +2,32 @@
using NUnit.Framework;
using System.Collections.Generic;
using System.Threading.Tasks;
+using Segment.Request;
+using Moq;
+using Segment.Model;
namespace Segment.Test
{
[TestFixture()]
public class ActionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns(async (Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
}
[Test ()]
diff --git a/Test.Net35/ConnectionTests.cs b/Test.Net35/ConnectionTests.cs
index e3bb26de..d90d0143 100644
--- a/Test.Net35/ConnectionTests.cs
+++ b/Test.Net35/ConnectionTests.cs
@@ -1,16 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
+using Moq;
using NUnit.Framework;
+using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class ConnectionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns(async (Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -19,7 +32,8 @@ public void Init()
public void ProxyTestNet35()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
@@ -32,7 +46,8 @@ public void ProxyTestNet35()
public void GZipTestNet35()
{
// Set GZip/Deflate on request header
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
diff --git a/Test.Net35/FlushTests.cs b/Test.Net35/FlushTests.cs
index f8aff1b4..4af7fef2 100644
--- a/Test.Net35/FlushTests.cs
+++ b/Test.Net35/FlushTests.cs
@@ -2,17 +2,29 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class FlushTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns(async (Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -20,7 +32,8 @@ public void Init()
[Test()]
public void SynchronousFlushTestNet35()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -36,7 +49,8 @@ public void SynchronousFlushTestNet35()
[Test()]
public void AsynchronousFlushTestNet35()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -55,7 +69,8 @@ public void AsynchronousFlushTestNet35()
[Test()]
public void PerformanceTestNet35()
{
- Analytics.Initialize(Constants.WRITE_KEY);
+ var client = new Client(Constants.WRITE_KEY, new Config(), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
diff --git a/Test.Net35/Test.Net35.csproj b/Test.Net35/Test.Net35.csproj
index b3be5e21..a934f3bf 100644
--- a/Test.Net35/Test.Net35.csproj
+++ b/Test.Net35/Test.Net35.csproj
@@ -33,6 +33,12 @@
4
+
+ ..\packages\AsyncBridge.Net35.0.2.0\lib\net35-Client\AsyncBridge.Net35.dll
+
+
+ ..\packages\Moq.4.2.1510.2205\lib\net35\Moq.dll
+
../packages/NUnit.3.8.1/lib/net35/nunit.framework.dll
diff --git a/Test.Net35/packages.config b/Test.Net35/packages.config
index c4eb1eaa..b409435f 100644
--- a/Test.Net35/packages.config
+++ b/Test.Net35/packages.config
@@ -1,5 +1,7 @@
+
+
diff --git a/Test.Net45/ActionTests.cs b/Test.Net45/ActionTests.cs
index 9d6c5a98..722cd3a8 100644
--- a/Test.Net45/ActionTests.cs
+++ b/Test.Net45/ActionTests.cs
@@ -2,18 +2,33 @@
using NUnit.Framework;
using System.Collections.Generic;
using System.Threading.Tasks;
+using Segment.Request;
+using Moq;
+using Segment.Model;
namespace Segment.Test
{
[TestFixture()]
public class ActionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.FromResult(true);
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
}
[Test ()]
diff --git a/Test.Net45/ConnectionTests.cs b/Test.Net45/ConnectionTests.cs
index 181e7f01..fa260c81 100644
--- a/Test.Net45/ConnectionTests.cs
+++ b/Test.Net45/ConnectionTests.cs
@@ -1,16 +1,31 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
+using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class ConnectionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.FromResult(true);
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -19,7 +34,8 @@ public void Init()
public void ProxyTestNet45()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
@@ -32,7 +48,8 @@ public void ProxyTestNet45()
public void GZipTestNet45()
{
// Set GZip/Deflate on request header
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
diff --git a/Test.Net45/FlushTests.cs b/Test.Net45/FlushTests.cs
index 18b7b3d5..2c5aa0a3 100644
--- a/Test.Net45/FlushTests.cs
+++ b/Test.Net45/FlushTests.cs
@@ -2,17 +2,30 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class FlushTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.FromResult(true);
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -20,7 +33,8 @@ public void Init()
[Test()]
public void SynchronousFlushTestNet45()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -36,7 +50,8 @@ public void SynchronousFlushTestNet45()
[Test()]
public void AsynchronousFlushTestNet45()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -55,7 +70,8 @@ public void AsynchronousFlushTestNet45()
[Test()]
public void PerformanceTestNet45()
{
- Analytics.Initialize(Constants.WRITE_KEY);
+ var client = new Client(Constants.WRITE_KEY, new Config(), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
diff --git a/Test.Net45/Test.Net45.csproj b/Test.Net45/Test.Net45.csproj
index ef7c6c7b..580a23ff 100644
--- a/Test.Net45/Test.Net45.csproj
+++ b/Test.Net45/Test.Net45.csproj
@@ -36,14 +36,24 @@
false
+
+ ..\packages\Castle.Core.4.4.0\lib\net45\Castle.Core.dll
+
+
+ ..\packages\Moq.4.13.1\lib\net45\Moq.dll
+
..\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll
+
-
- ../packages/TaskParallelLibrary.1.0.2856.0/lib/Net35/System.Threading.dll
+
+ ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.0\lib\netstandard1.0\System.Runtime.CompilerServices.Unsafe.dll
+
+
+ ..\packages\System.Threading.Tasks.Extensions.4.5.1\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Extensions.dll
diff --git a/Test.Net45/packages.config b/Test.Net45/packages.config
index 4e30b548..0c35f545 100644
--- a/Test.Net45/packages.config
+++ b/Test.Net45/packages.config
@@ -1,5 +1,7 @@
+
+
@@ -8,5 +10,6 @@
-
+
+
\ No newline at end of file
diff --git a/Test.NetStandard20/ActionTests.cs b/Test.NetStandard20/ActionTests.cs
index bdbb2255..86fe7927 100644
--- a/Test.NetStandard20/ActionTests.cs
+++ b/Test.NetStandard20/ActionTests.cs
@@ -1,6 +1,9 @@
using System;
using NUnit.Framework;
using System.Collections.Generic;
+using Moq;
+using Segment.Request;
+using Segment.Model;
using System.Threading.Tasks;
namespace Segment.Test
@@ -8,13 +11,24 @@ namespace Segment.Test
[TestFixture()]
public class ActionTests
{
+ private Mock _mockRequestHandler;
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
}
[Test ()]
diff --git a/Test.NetStandard20/ConnectionTests.cs b/Test.NetStandard20/ConnectionTests.cs
index 15a82867..786e70bb 100644
--- a/Test.NetStandard20/ConnectionTests.cs
+++ b/Test.NetStandard20/ConnectionTests.cs
@@ -1,16 +1,31 @@
using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
+using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class ConnectionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -19,7 +34,8 @@ public void Init()
public void ProxyTestNetStanard20()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
@@ -32,7 +48,8 @@ public void ProxyTestNetStanard20()
public void GZipTestNetStanard20()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
diff --git a/Test.NetStandard20/FlushTests.cs b/Test.NetStandard20/FlushTests.cs
index 8370c265..b386419c 100644
--- a/Test.NetStandard20/FlushTests.cs
+++ b/Test.NetStandard20/FlushTests.cs
@@ -2,17 +2,30 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class FlushTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -20,7 +33,8 @@ public void Init()
[Test()]
public void SynchronousFlushTestNetStanard20()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -36,7 +50,8 @@ public void SynchronousFlushTestNetStanard20()
[Test()]
public void AsynchronousFlushTestNetStanard20()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -55,7 +70,8 @@ public void AsynchronousFlushTestNetStanard20()
[Test()]
public async Task PerformanceTestNetStanard20()
{
- Analytics.Initialize(Constants.WRITE_KEY);
+ var client = new Client(Constants.WRITE_KEY, new Config(), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
diff --git a/Test.NetStandard20/Request/BlockingRequestHandlerTest.cs b/Test.NetStandard20/Request/BlockingRequestHandlerTest.cs
index 871a28e9..cc819f12 100644
--- a/Test.NetStandard20/Request/BlockingRequestHandlerTest.cs
+++ b/Test.NetStandard20/Request/BlockingRequestHandlerTest.cs
@@ -13,7 +13,7 @@
using System.Threading;
using System.Threading.Tasks;
-namespace Test.NetStandard20.Request
+namespace Segment.Test.Request
{
[TestFixture()]
diff --git a/Test.UniversalApp/ActionTests.cs b/Test.UniversalApp/ActionTests.cs
index a7eb045f..aebf6d41 100644
--- a/Test.UniversalApp/ActionTests.cs
+++ b/Test.UniversalApp/ActionTests.cs
@@ -3,18 +3,33 @@
using System.Diagnostics;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Moq;
+using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestClass]
public class ActionTests
{
+ private Mock _mockRequestHandler;
+
[TestInitialize]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
}
[TestMethod]
diff --git a/Test.UniversalApp/ConnectionTests.cs b/Test.UniversalApp/ConnectionTests.cs
index df194dc7..e839c76c 100644
--- a/Test.UniversalApp/ConnectionTests.cs
+++ b/Test.UniversalApp/ConnectionTests.cs
@@ -3,15 +3,30 @@
using System.Text;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
+using Moq;
+using Segment.Request;
+using Segment.Model;
+using System.Threading.Tasks;
namespace Segment.Test
{
[TestClass]
public class ConnectionTests
{
+ private Mock _mockRequestHandler;
+
[TestInitialize]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -20,7 +35,8 @@ public void Init()
public void ProxyTestNetPortable()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
@@ -33,7 +49,8 @@ public void ProxyTestNetPortable()
public void GZipTestNetPortable()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
diff --git a/Test.UniversalApp/FlushTests.cs b/Test.UniversalApp/FlushTests.cs
index 7ca30611..65f34c07 100644
--- a/Test.UniversalApp/FlushTests.cs
+++ b/Test.UniversalApp/FlushTests.cs
@@ -5,15 +5,27 @@
using Segment.Model;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Diagnostics;
+using Moq;
+using Segment.Request;
namespace Segment.Test
{
[TestClass]
public class FlushTests
{
+ private Mock _mockRequestHandler;
+
[TestInitialize]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -21,7 +33,8 @@ public void Init()
[TestMethod]
public void SynchronousFlushTestNetPortable()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -37,7 +50,8 @@ public void SynchronousFlushTestNetPortable()
[TestMethod]
public void AsynchronousFlushTestNetPortable()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -56,7 +70,8 @@ public void AsynchronousFlushTestNetPortable()
[TestMethod]
public async Task PerformanceTestNetPortable()
{
- Analytics.Initialize(Constants.WRITE_KEY);
+ var client = new Client(Constants.WRITE_KEY, new Config(), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
diff --git a/Test.UniversalApp/Test.UniversalApp.csproj b/Test.UniversalApp/Test.UniversalApp.csproj
index 80ef4faf..a0324304 100644
--- a/Test.UniversalApp/Test.UniversalApp.csproj
+++ b/Test.UniversalApp/Test.UniversalApp.csproj
@@ -11,8 +11,8 @@
Test.UniversalApp
en-US
UAP
- 10.0.15063.0
- 10.0.10586.0
+ 10.0.18362.0
+ 10.0.18362.0
14
512
{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
@@ -132,6 +132,9 @@
6.0.1
+
+ 4.13.1
+
1.1.18
diff --git a/Test/ActionTests.cs b/Test/ActionTests.cs
index f25f19be..fbde3827 100644
--- a/Test/ActionTests.cs
+++ b/Test/ActionTests.cs
@@ -1,20 +1,31 @@
using System;
using NUnit.Framework;
using System.Collections.Generic;
-using System.Threading.Tasks;
+using Segment.Request;
+using Moq;
+using Segment.Model;
namespace Segment.Test
{
[TestFixture()]
public class ActionTests
{
+ private Mock _mockRequestHandler;
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns(async (Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ });
+
Analytics.Dispose();
- Logger.Handlers += LoggingHandler;
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
}
[Test ()]
diff --git a/Test/ConnectionTests.cs b/Test/ConnectionTests.cs
index 837b2579..e12ec2f5 100644
--- a/Test/ConnectionTests.cs
+++ b/Test/ConnectionTests.cs
@@ -1,16 +1,31 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Text;
+using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
+using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class ConnectionTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -19,7 +34,8 @@ public void Init()
public void ProxyTest()
{
// Set proxy address, like as "http://localhost:8888"
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetProxy(""), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
@@ -32,7 +48,8 @@ public void ProxyTest()
public void GZipTest()
{
// Set GZip/Deflate on request header
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false).SetRequestCompression(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Actions.Identify(Analytics.Client);
diff --git a/Test/FlushTests.cs b/Test/FlushTests.cs
index ea4e4c96..de6d50ec 100644
--- a/Test/FlushTests.cs
+++ b/Test/FlushTests.cs
@@ -2,17 +2,30 @@
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
+using Moq;
using NUnit.Framework;
using Segment.Model;
+using Segment.Request;
namespace Segment.Test
{
[TestFixture()]
public class FlushTests
{
+ private Mock _mockRequestHandler;
+
[SetUp]
public void Init()
{
+ _mockRequestHandler = new Mock();
+ _mockRequestHandler
+ .Setup(x => x.MakeRequest(It.IsAny()))
+ .Returns((Batch b) =>
+ {
+ Analytics.Client.Statistics.Succeeded += b.batch.Count;
+ return Task.CompletedTask;
+ });
+
Analytics.Dispose();
Logger.Handlers += LoggingHandler;
}
@@ -20,7 +33,8 @@ public void Init()
[Test()]
public void SynchronousFlushTest()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(false));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(false), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -36,7 +50,8 @@ public void SynchronousFlushTest()
[Test()]
public void AsynchronousFlushTest()
{
- Analytics.Initialize(Constants.WRITE_KEY, new Config().SetAsync(true));
+ var client = new Client(Constants.WRITE_KEY, new Config().SetAsync(true), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
@@ -55,7 +70,8 @@ public void AsynchronousFlushTest()
[Test()]
public async Task PerformanceTest()
{
- Analytics.Initialize(Constants.WRITE_KEY);
+ var client = new Client(Constants.WRITE_KEY, new Config(), _mockRequestHandler.Object);
+ Analytics.Initialize(client);
Analytics.Client.Succeeded += Client_Succeeded;
Analytics.Client.Failed += Client_Failed;
diff --git a/Test/Test.csproj b/Test/Test.csproj
index 25339895..36485644 100644
--- a/Test/Test.csproj
+++ b/Test/Test.csproj
@@ -1,7 +1,7 @@
- netcoreapp1.1
+ netcoreapp2.1
Library
@@ -9,6 +9,7 @@
+