Ejemplo n.º 1
0
 public void TestGetValueThrows()
 {
     Private.JweMetricType jweMetric = new Private.JweMetricType(
         category: "telemetry",
         disabled: true,
         lifetime: Private.Lifetime.Application,
         name: "jwe_metric",
         sendInPings: new string[] { "store1" }
         );
     Assert.Throws <NullReferenceException>(() => jweMetric.TestGetValue());
 }
Ejemplo n.º 2
0
        public void DisabledJwesMustNotRecordData()
        {
            Private.JweMetricType jweMetric = new Private.JweMetricType(
                category: "telemetry",
                disabled: true,
                lifetime: Private.Lifetime.Application,
                name: "jwe_metric",
                sendInPings: new string[] { "store1" }
                );

            // Attempt to store the string.
            jweMetric.Set(this.header, this.key, this.initVector, this.cipherText, this.authTag);

            // Check that nothing was recorded.
            Assert.False(jweMetric.TestHasValue(), "JWEs must not be recorded if they are disabled");
        }
Ejemplo n.º 3
0
        public void SettingALongStringRecordsAnError()
        {
            Private.JweMetricType jweMetric = new Private.JweMetricType(
                category: "telemetry",
                disabled: false,
                lifetime: Private.Lifetime.Application,
                name: "jwe_metric",
                sendInPings: new string[] { "store1", "store2" }
                );

            // Too long elements should yield a InvalidOverflow error
            jweMetric.Set(new string('X', 1025), this.key, this.initVector, this.cipherText, this.authTag);
            Assert.Equal(1, jweMetric.TestGetNumRecordedErrors(ErrorType.InvalidOverflow));

            // Invalid compact string representation yield a InvalidValue error
            jweMetric.setWithCompactRepresentation("");
            Assert.Equal(1, jweMetric.TestGetNumRecordedErrors(ErrorType.InvalidValue));
        }
Ejemplo n.º 4
0
        public void TestJweGetValueReturnsCorrectJweDataRepresentation()
        {
            Private.JweMetricType jweMetric = new Private.JweMetricType(
                category: "telemetry",
                disabled: false,
                lifetime: Private.Lifetime.Application,
                name: "jwe_metric",
                sendInPings: new string[] { "store1" }
                );

            jweMetric.Set(this.header, this.key, this.initVector, this.cipherText, this.authTag);

            Private.JweData data = jweMetric.TestGetValue();
            Assert.Equal(data.Header, this.header);
            Assert.Equal(data.Key, this.key);
            Assert.Equal(data.InitVector, this.initVector);
            Assert.Equal(data.CipherText, this.cipherText);
            Assert.Equal(data.AuthTag, this.authTag);
        }
Ejemplo n.º 5
0
        public void APISavesToSecondaryPings()
        {
            Private.JweMetricType jweMetric = new Private.JweMetricType(
                category: "telemetry",
                disabled: false,
                lifetime: Private.Lifetime.Application,
                name: "jwe_metric",
                sendInPings: new string[] { "store1", "store2" }
                );

            // Record two JWEs of the same type, with a little delay.
            jweMetric.Set(this.header, this.key, this.initVector, this.cipherText, this.authTag);

            // Check that data was properly recorded in the second ping.
            Assert.True(jweMetric.TestHasValue("store2"));
            Assert.Equal(this.jwe, jweMetric.testGetCompactRepresentation("store2"));

            jweMetric.Set(this.header, "", "", this.cipherText, "");
            // Check that data was properly recorded in the second ping.
            Assert.True(jweMetric.TestHasValue("store2"));
            Assert.Equal(this.minimumJwe, jweMetric.testGetCompactRepresentation("store2"));
        }