public void CanSetBeaconCacheLowerMemoryBoundaryForDynatrace()
        {
            // given
            var        target = new DynatraceOpenKitBuilder(Endpoint, AppID, DeviceID);
            const long lowerMemoryBoundary = 42L * 1024L;

            // when
            var obtained = target.WithBeaconCacheLowerMemoryBoundary(lowerMemoryBoundary);
            var config   = target.BuildConfiguration().BeaconCacheConfig;

            // then
            Assert.That(obtained, Is.InstanceOf <DynatraceOpenKitBuilder>());
            Assert.That((DynatraceOpenKitBuilder)obtained, Is.SameAs(target));
            Assert.That(config.CacheSizeLowerBound, Is.EqualTo(lowerMemoryBoundary));
        }
        public void CanSetCrashReportingLevelForDynatrace()
        {
            // given
            var target = new DynatraceOpenKitBuilder(endpoint, appID, deviceID);

            // when
            var level    = CrashReportingLevel.OPT_IN_CRASHES;
            var obtained = target.WithCrashReportingLevel(level);
            var config   = target.BuildConfiguration().BeaconConfig;

            // then
            Assert.That(obtained, Is.InstanceOf <DynatraceOpenKitBuilder>());
            Assert.That((DynatraceOpenKitBuilder)obtained, Is.SameAs(target));
            Assert.That(config.CrashReportingLevel, Is.EqualTo(level));
        }
        public void CanSetCustomMaxBeaconRecordAgeForDynatrace()
        {
            // given
            DynatraceOpenKitBuilder target = new DynatraceOpenKitBuilder(Endpoint, AppID, DeviceID);
            const long maxRecordAge        = 123456L;

            // when
            var obtained = target.WithBeaconCacheMaxRecordAge(maxRecordAge);
            var config   = target.BuildConfiguration().BeaconCacheConfig;

            // then
            Assert.That(obtained, Is.InstanceOf <DynatraceOpenKitBuilder>());
            Assert.That((DynatraceOpenKitBuilder)obtained, Is.SameAs(target));
            Assert.That(config.MaxRecordAge, Is.EqualTo(maxRecordAge));
        }
        public void CanSetDataCollectionLevelForDynatrace()
        {
            // given
            var target = new DynatraceOpenKitBuilder(endpoint, appID, deviceID);

            // when
            var level    = DataCollectionLevel.USER_BEHAVIOR;
            var obtained = target.WithDataCollectionLevel(level);
            var config   = target.BuildConfiguration().BeaconConfig;

            // then
            Assert.That(obtained, Is.InstanceOf <DynatraceOpenKitBuilder>());
            Assert.That((DynatraceOpenKitBuilder)obtained, Is.SameAs(target));
            Assert.That(config.DataCollectionLevel, Is.EqualTo(level));
        }