public void ToError_Test()
        {
            //arrange
            var ddb = InitialiseClient();

            var repository = new DynamoDbRepository <ElmahError>(
                Settings.Default, ddb, string.Empty
                );

            var dynamodb = new ElmahDynamoDbErrorLog(_config, repository);

            var datetimeId = dynamodb.ToDateTimeId(DateTime.UtcNow);

            var error = Builder <ElmahError> .CreateNew()
                        .With(x => x.DateTimeId      = datetimeId)
                        .With(x => x.ApplicationName = Settings.Default.ApplicationName)
                        .Build();

            ddb.Save(error, DefaultDbOperationConfig);

            //act
            var result = dynamodb.GetError(datetimeId);

            //assert
            result.Error.ApplicationName.Should().Equal(error.ApplicationName);
            result.Id.Should().Equal(datetimeId);
        }
        public DynamoDbRepositoryTests()
        {
            _mockContext = new Mock <IDynamoDBContext>();

            _repository = new DynamoDbRepository <TestEntity>(_mockContext.Object);

            SetupSuccessfulContextCalls();
        }
Example #3
0
        public async Task FunctionHandler(string folderName, ILambdaContext context)
        {
            var config = new ConfigurationBuilder()
                         .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                         .Build();

            var accessKey = config["accessKey"];
            var secretKet = config["secretKey"];

            var s3RegionName       = Environment.GetEnvironmentVariable("S3_region");
            var dynamoDbRegionName = Environment.GetEnvironmentVariable("DynamoDB_region");
            var bucketName         = Environment.GetEnvironmentVariable("S3_bucket_name");
            var tableName          = Environment.GetEnvironmentVariable("DynamoDB_table_name");

            var s3Repository       = new S3Repository(accessKey, secretKet, s3RegionName, bucketName);
            var dynamoDbRepository = new DynamoDbRepository(accessKey, secretKet, dynamoDbRegionName, tableName);
            var entityProcessor    = new EntityProcessor(s3Repository, dynamoDbRepository);

            await entityProcessor.ProcessFolder(folderName);
        }
        public void Log_DateTimeIdTest()
        {
            //arrange
            var repository = new DynamoDbRepository <ElmahError>(
                Settings.Default, InitialiseClient(), string.Empty
                );

            var dynamodb = new ElmahDynamoDbErrorLog(_config, repository);

            var error = Builder <Error> .CreateNew()
                        .Build();

            //act
            var result = dynamodb.Log(error);

            var comparer = dynamodb.ToDateTimeId(error.Time);

            //assert
            result.Substring(0, result.IndexOf("-", StringComparison.Ordinal))
            .Should().Equal(comparer.Substring(0, result.IndexOf("-", StringComparison.Ordinal)));
        }
        public void Log_Test()
        {
            //arrange
            var repository = new DynamoDbRepository <ElmahError>(
                Settings.Default, InitialiseClient(), string.Empty
                );

            var dynamodb = new ElmahDynamoDbErrorLog(_config, repository);

            var error = Builder <Error> .CreateNew()
                        .With(x => x.ApplicationName = Settings.Default.ApplicationName)
                        .Build();

            //act
            dynamodb.Log(error);

            var elmaherrors = InitialiseClient().FromScan <ElmahError>(new ScanOperationConfig(), DefaultDbOperationConfig).ToList();

            //assert
            elmaherrors.Count.Should().Equal(1);
            elmaherrors.Single().ApplicationName.Should().Equal(error.ApplicationName);
        }
        public void GetErrors_Test_ZeroPageIndex()
        {
            //arrange
            var ddb = InitialiseClient();

            var repository = new DynamoDbRepository <ElmahError>(
                Settings.Default, ddb, string.Empty
                );

            var dynamodb = new ElmahDynamoDbErrorLog(_config, repository);

            var errors = Builder <ElmahError> .CreateListOfSize(20)
                         .All()
                         .With(x => x.ApplicationName = Settings.Default.ApplicationName)
                         .Build();

            var random = new Random();

            foreach (var error in errors)
            {
                var date       = new DateTime(2017, 01, random.Next(1, 31));
                var datetimeId = dynamodb.ToDateTimeId(date);

                error.TimeUtc    = date;
                error.DateTimeId = datetimeId;
                ddb.Save(error, DefaultDbOperationConfig);
            }

            var results = new List <ErrorLogEntry>();

            var resultCount = dynamodb.GetErrors(0, 4, results);

            resultCount.Should().Equal(20);
            results.Count().Should().Equal(4);
            results.OrderByDescending(x => x.Error.Time).SequenceEqual(results).Should().Be.True();
        }