Exemplo n.º 1
0
        public void MemoryWarehouseShouldStoreAndReturnAndAppendAndReturnPallet()
        {
            var warehouse = new Warehouse();
            var payload   = new List <string>()
            {
                "Test Test test"
            };
            var scope = new ApplicationScope("TestApp");
            var key   = new WarehouseKey($"key", scope);

            var receipt = warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });

            var returnedValue = warehouse.Retrieve <string>(key).ToList();

            returnedValue.Should().Contain(payload);

            var nextText = " 123456789";

            payload.Add(nextText);

            warehouse.Append(key, new[] { nextText }, receipt.Policies);

            var newReturnedValue = warehouse.Retrieve <string>(key);

            newReturnedValue.Should().Contain(payload);
        }
Exemplo n.º 2
0
        static int Main(string[] args)
        {
            ApplicationScope applicationScope = new ApplicationScope(args);
            ScreenShotMaker  screenShooter    = ScreenshooterInjector.CreateScreenShotMaker(applicationScope);
            int exitCode = screenShooter.Run();

            return(exitCode);
        }
Exemplo n.º 3
0
        public async Task UpdateAsync(ApplicationScope update, CancellationToken cancellationToken)
        {
            var entity = await _scopeManager.FindByIdAsync(update.Id.ToString(), cancellationToken);

            if (entity != null)
            {
                await _scopeManager.UpdateAsync(entity, cancellationToken);
            }
        }
Exemplo n.º 4
0
    public void TestInitializedScopeReturnsOk()
    {
        var scope = new ApplicationScope
        {
            ApplicationContext = new ApplicationContext(
                new ServiceCollection().BuildServiceProvider(),
                Mock.Of <IAppFactory>()
                )
        };
        var ctx = scope.ApplicationContext;

        ctx.Should().NotBeNull();
    }
Exemplo n.º 5
0
        public void PayloadSigningShouldRoundtripQuickly()
        {
            var warehouse = new Warehouse();
            var payload   = new[] { "Test Test test" };
            var scope     = new ApplicationScope("TestApp");
            var key       = new WarehouseKey($"key", scope);

            var receipt = warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });

            var returnedValue = warehouse.Retrieve <string>(key).ToList();

            Warehouse.VerifyChecksum(returnedValue, receipt.SHA256Checksum).Should().BeTrue();
        }
Exemplo n.º 6
0
        public void MemoryWarehouseShouldStoreAndReturnPallet()
        {
            var warehouse = new Warehouse();
            var payload   = new[] { "Test Test test" };
            var scope     = new ApplicationScope("TestApp");
            var key       = new WarehouseKey($"key", scope);

            var receipt = warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });

            var returnedValue = warehouse.Retrieve <string>(key).ToList();

            returnedValue.Should().Contain(payload);
        }
Exemplo n.º 7
0
        public async Task CreateAsync(ApplicationScope scope, CancellationToken cancellationToken)
        {
            if (scope == null)
            {
                throw new ArgumentNullException(nameof(scope));
            }

            var entity = await _scopeManager.FindByIdAsync(scope.Id.ToString(), cancellationToken);

            if (entity == null)
            {
                await _scopeManager.CreateAsync(scope, cancellationToken);
            }
        }
Exemplo n.º 8
0
        public void MultiThreadedWriteReadPerformanceTest()
        {
            var warehouse = new Warehouse();
            var appScope  = new ApplicationScope("Test");

            Parallel.ForEach(Enumerable.Range(1, 100),
                             new ParallelOptions {
                MaxDegreeOfParallelism = 10
            },
                             (index) => {
                var payload = new[] { index.ToString() };
                var key     = new WarehouseKey($"key_{index}", appScope);
                warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });
                output.WriteLine($"Index stored: {index}");
                warehouse.Retrieve <string>(key).Should().Contain(payload);
            });
        }
Exemplo n.º 9
0
        public void MultiThreadedAppendReadToOneKeyPerformanceTest()
        {
            var warehouse = new Warehouse();
            var appScope  = new ApplicationScope("Test");
            var key       = new WarehouseKey("key", appScope);
            var payload   = new[] { "initial" };

            warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });

            Parallel.ForEach(Enumerable.Range(1, 100),
                             new ParallelOptions {
                MaxDegreeOfParallelism = 10
            },
                             (index) => {
                warehouse.Append(key, new[] { (index + 100).ToString() }, new[] { LoadingDockPolicy.Ephemeral });
                output.WriteLine($"Index stored: {index}");
            });

            warehouse.Retrieve <string>(key).Count().Should().Be(101);
        }
Exemplo n.º 10
0
        public void PayloadSigningShouldRoundtrip()
        {
            var warehouse = new Warehouse();
            var payload   = Enumerable.Range(1, 500).Select(i => $"record{i}-{Guid.NewGuid()}").ToArray();

            var scope = new ApplicationScope("TestApp");
            var key   = new WarehouseKey($"key", scope);

            Stopwatch timer = new Stopwatch();

            timer.Start();
            var receipt       = warehouse.Store(key, payload, new[] { LoadingDockPolicy.Ephemeral });
            var returnedValue = warehouse.Retrieve <string>(key).ToList();

            Warehouse.VerifyChecksum(returnedValue, receipt.SHA256Checksum).Should().BeTrue();
            timer.Stop();

            // the amount of time to store, and retrieve a few kilobytes
            output.WriteLine($"Runtime was {Encoding.UTF8.GetByteCount(payload.SelectMany(st => st).ToArray())} bytes in {timer.ElapsedMilliseconds}.");
            timer.ElapsedMilliseconds.Should().BeLessThan(100);
        }
Exemplo n.º 11
0
 public override string GetDebuggerDisplay(ApplicationScope scope)
 {
     return($"dataset:{typeof(TDataset).Name}");
 }
Exemplo n.º 12
0
 public override string GetDebuggerDisplay(ApplicationScope scope)
 {
     return($"database:{_connectionString}");
 }
Exemplo n.º 13
0
    public void TestFailedInitializedScopeThrows()
    {
        var scope = new ApplicationScope();

        Assert.Throws <InvalidOperationException>(() => scope.ApplicationContext);
    }