Example #1
0
        public async Task TestSoarAuthorizerEthereum()
        {
            //todo rewrite this test with mocked ethereum service
            var secret    = "768eafe9ba984e2ca799f8829738c0ba";
            var challenge = "63f20673bd324ab78c7b059ddad5cccf";
            var fileHash  = "438269b95b997fc736cf8c4801843db3";
            var address   = "0x7Bcbb6Ca8De198f97Ac9Bb3B263216EB1E22AA6D";

            IStorageService storageService = new StorageServiceMock();
            var             temp           = await storageService.PutSecret(secret, challenge, address, fileHash);

            var function = new Function(storageService);

            var context = new TestLambdaContext();

            var req = new APIGatewayCustomAuthorizerRequest()
            {
                QueryStringParameters = new Dictionary <string, string>()
                {
                    { "soarSecret", "768eafe9ba984e2ca799f8829738c0ba" },
                    { "txnHash", "0x5be37b8355d44138272e860b675fd91928b3ac77ec70f6825ad5543dee4b4c79" }
                },
                StageVariables = new Dictionary <string, string>()
                {
                    { "soar_contract_address", "0xf413a66fe07b49d2ca798acf6e43a47462e7081b" },
                    { "infura_address", "https://rinkeby.infura.io/trgLCqvmmrvTb46D5Iz4" }
                }
            };
            var upperCase = await function.FunctionHandler(req, context);
        }
Example #2
0
        public async Task RunBeforeAnyTests()
        {
            // Create database container for integration tests
            var dockerSqlPort = await DockerDatabaseUtilities.EnsureDockerStartedAsync();

            var dockerConnectionString = DockerDatabaseUtilities.GetSqlConnectionString(dockerSqlPort);

            // Build configuration, including the connection string from the database container
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", false, true)
                          .AddInMemoryCollection(new Dictionary <string, string>
            {
                { "ConnectionStrings:Database", dockerConnectionString }
            })
                          .AddEnvironmentVariables();

            _configuration = builder.Build();
            _env           = Mock.Of <IWebHostEnvironment>();

            var startup  = new Startup(_configuration, _env);
            var services = new ServiceCollection();

            services.AddLogging();
            startup.ConfigureServices(services);

            #region Register mocks

            var descriptorCurrentUserService = services.FirstOrDefault(d => d.ServiceType == typeof(ICurrentUserService));
            services.Remove(descriptorCurrentUserService !);
            services.AddTransient(_ => CurrentUserServiceMock.Create(_user).Object);

            var descriptorDateTimeProvider = services.FirstOrDefault(d => d.ServiceType == typeof(IDateTimeProvider));
            services.Remove(descriptorDateTimeProvider !);
            services.AddTransient(_ => DateTimeProviderMock.Create(DateTime.UtcNow).Object);

            var descriptorStorageService = services.FirstOrDefault(d => d.ServiceType == typeof(IStorageService));
            services.Remove(descriptorStorageService !);
            services.AddTransient(_ => StorageServiceMock.Create().Object);

            #endregion

            _scopeFactory = services.BuildServiceProvider().GetService <IServiceScopeFactory>()
                            ?? throw new InvalidOperationException();

            _checkpoint = new Checkpoint
            {
                TablesToIgnore = new[] { "__EFMigrationsHistory" },
                DbAdapter      = DbAdapter.Postgres
            };

            EnsureDatabase();
        }
        public async Task TestSoarDownloadDetails()
        {
            IStorageService storageService = new StorageServiceMock();
            var             function       = new Function(storageService);
            var             context        = new TestLambdaContext();

            var req = new DownloadDetailsReq()
            {
                address = "eth-address"
            };
            //DownloadDetailsRes res = await function.FunctionHandler(req, context);
            //SecretDetails secretDetails = await storageService.GetSecretDetails(res.secret);
            //Assert.Equal(req.address, secretDetails.Address);
        }