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)); } } }