100 lines
4.5 KiB
C#
100 lines
4.5 KiB
C#
|
using NUnit.Framework;
|
|||
|
using ServiceShared.Crypto;
|
|||
|
using System;
|
|||
|
using static ServiceShared.Models.Database.Device;
|
|||
|
using static ServiceShared.Models.Database.Results;
|
|||
|
|
|||
|
namespace ServiceOutsideTests
|
|||
|
{
|
|||
|
public class Database : Controllers.BaseTestController
|
|||
|
{
|
|||
|
// [Test]
|
|||
|
public void Insert10kResults()
|
|||
|
{
|
|||
|
KeyPair keyPair = Curve25519.GenerateKeyPair();
|
|||
|
ServiceShared.Database.Controllers.Results dbResults = new ServiceShared.Database.Controllers.Results(this.dbContext);
|
|||
|
ServiceShared.Database.Controllers.Traces dbTraces = new ServiceShared.Database.Controllers.Traces(this.dbContext);
|
|||
|
int dbResultsCount = this.DbCountResults();
|
|||
|
int dbTraceCount = this.DbCountTraces();
|
|||
|
|
|||
|
int numer_tests = 10000;
|
|||
|
|
|||
|
for (int i = 0; i < numer_tests; i++)
|
|||
|
{
|
|||
|
ServiceShared.Models.Database.Results results = new ServiceShared.Models.Database.Results();
|
|||
|
results.Available = true;
|
|||
|
results.AvailableTS = DateTime.Now;
|
|||
|
results.Status = ResultsStatus.COMPLETED;
|
|||
|
results.NotifiedTS = DateTime.Now;
|
|||
|
results.Notified = true;
|
|||
|
results.PGS = SHA512.Encrypt(Guid.NewGuid().ToString());
|
|||
|
results.DeviceType = DeviceTypes.IOS;
|
|||
|
results.VerificationHash = ServiceShared.Crypto.SHA512.HMAC("Test", AES.GetKey("TEST"));
|
|||
|
results.UDID = Guid.NewGuid().ToString().Substring(0, 25);
|
|||
|
results.DeviceToken = this.DeviceToken;
|
|||
|
results.ClientPublicKey = keyPair.PublicKey;
|
|||
|
dbResults.Create(results);
|
|||
|
}
|
|||
|
|
|||
|
for (int i = 0; i < numer_tests; i++)
|
|||
|
{
|
|||
|
ServiceShared.Models.Database.Traces traces = new ServiceShared.Models.Database.Traces();
|
|||
|
traces.Message = "testing";
|
|||
|
traces.PGS = SHA512.Encrypt(Guid.NewGuid().ToString());
|
|||
|
traces.UDID = Guid.NewGuid().ToString().Substring(0, 25);
|
|||
|
dbTraces.Create(traces);
|
|||
|
}
|
|||
|
|
|||
|
int dbResultsCountAfter = this.DbCountResults();
|
|||
|
int dbTraceCountAfter = this.DbCountTraces();
|
|||
|
|
|||
|
Assert.IsTrue(dbResultsCountAfter == (dbResultsCount + numer_tests));
|
|||
|
Assert.IsTrue(dbTraceCountAfter == (dbTraceCount + numer_tests));
|
|||
|
}
|
|||
|
|
|||
|
//[Test]
|
|||
|
public void InsertsMultitrades()
|
|||
|
{
|
|||
|
KeyPair keyPair = Curve25519.GenerateKeyPair();
|
|||
|
ServiceShared.Database.Controllers.Results dbResults = new ServiceShared.Database.Controllers.Results(this.dbContext);
|
|||
|
ServiceShared.Database.Controllers.Traces dbTraces = new ServiceShared.Database.Controllers.Traces(this.dbContext);
|
|||
|
int dbResultsCount = this.DbCountResults();
|
|||
|
int dbTraceCount = this.DbCountTraces();
|
|||
|
|
|||
|
int numer_tests = 100000;
|
|||
|
|
|||
|
for (int i = 0; i < numer_tests; i++)
|
|||
|
{
|
|||
|
ServiceShared.Models.Database.Results results = new ServiceShared.Models.Database.Results();
|
|||
|
results.Available = true;
|
|||
|
results.AvailableTS = DateTime.Now;
|
|||
|
results.Status = ResultsStatus.COMPLETED;
|
|||
|
results.NotifiedTS = DateTime.Now;
|
|||
|
results.Notified = true;
|
|||
|
results.PGS = SHA512.Encrypt(Guid.NewGuid().ToString());
|
|||
|
results.DeviceType = DeviceTypes.IOS;
|
|||
|
results.VerificationHash = ServiceShared.Crypto.SHA512.HMAC("Test", AES.GetKey("TEST"));
|
|||
|
results.UDID = Guid.NewGuid().ToString().Substring(0, 25);
|
|||
|
results.DeviceToken = this.DeviceToken;
|
|||
|
results.ClientPublicKey = keyPair.PublicKey;
|
|||
|
dbResults.Create(results);
|
|||
|
}
|
|||
|
|
|||
|
for (int i = 0; i < numer_tests; i++)
|
|||
|
{
|
|||
|
ServiceShared.Models.Database.Traces traces = new ServiceShared.Models.Database.Traces();
|
|||
|
traces.Message = "testing";
|
|||
|
traces.PGS = SHA512.Encrypt(Guid.NewGuid().ToString());
|
|||
|
traces.UDID = Guid.NewGuid().ToString().Substring(0, 25);
|
|||
|
dbTraces.Create(traces);
|
|||
|
}
|
|||
|
|
|||
|
int dbResultsCountAfter = this.DbCountResults();
|
|||
|
int dbTraceCountAfter = this.DbCountTraces();
|
|||
|
|
|||
|
Assert.IsTrue(dbResultsCountAfter == (dbResultsCount + numer_tests));
|
|||
|
Assert.IsTrue(dbTraceCountAfter == (dbTraceCount + numer_tests));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|