public void SanitizeWillTrimAppropriateFields() { PageViewTelemetry telemetry = new PageViewTelemetry(); telemetry.Name = new string('Z', Property.MaxNameLength + 1); telemetry.Properties.Add(new string('X', Property.MaxDictionaryNameLength) + 'X', new string('X', Property.MaxValueLength + 1)); telemetry.Properties.Add(new string('X', Property.MaxDictionaryNameLength) + 'Y', new string('X', Property.MaxValueLength + 1)); telemetry.Metrics.Add(new string('Y', Property.MaxDictionaryNameLength) + 'X', 42.0); telemetry.Metrics.Add(new string('Y', Property.MaxDictionaryNameLength) + 'Y', 42.0); telemetry.Url = new Uri("http://foo.com/" + new string('Y', Property.MaxUrlLength + 1)); ((ITelemetry)telemetry).Sanitize(); Assert.Equal(new string('Z', Property.MaxNameLength), telemetry.Name); Assert.Equal(2, telemetry.Properties.Count); Assert.Equal(new string('X', Property.MaxDictionaryNameLength), telemetry.Properties.Keys.ToArray()[0]); Assert.Equal(new string('X', Property.MaxValueLength), telemetry.Properties.Values.ToArray()[0]); Assert.Equal(new string('X', Property.MaxDictionaryNameLength - 3) + "001", telemetry.Properties.Keys.ToArray()[1]); Assert.Equal(new string('X', Property.MaxValueLength), telemetry.Properties.Values.ToArray()[1]); Assert.Equal(2, telemetry.Metrics.Count); Assert.Equal(new string('Y', Property.MaxDictionaryNameLength), telemetry.Metrics.Keys.ToArray()[0]); Assert.Equal(new string('Y', Property.MaxDictionaryNameLength - 3) + "001", telemetry.Metrics.Keys.ToArray()[1]); Assert.Equal(new Uri("http://foo.com/" + new string('Y', Property.MaxUrlLength - 15)), telemetry.Url); }
public void PageViewTelemetrySuppliesConstructorThatTakesNameParameter() { string expectedPageName = "My page view"; var instance = new PageViewTelemetry(expectedPageName); Assert.Equal(expectedPageName, instance.Name); }
public void SanitizePopulatesNameWithErrorBecauseItIsRequiredByEndpoint() { var telemetry = new PageViewTelemetry { Name = null }; ((ITelemetry)telemetry).Sanitize(); Assert.Contains("name", telemetry.Name, StringComparison.OrdinalIgnoreCase); Assert.Contains("required", telemetry.Name, StringComparison.OrdinalIgnoreCase); }
public void PageViewTelemetrySerializesToJsonCorrectly() { var expected = new PageViewTelemetry("My Page"); expected.Url = new Uri("http://temp.org/page1"); expected.Duration = TimeSpan.FromSeconds(123); expected.Metrics.Add("Metric1", 30); expected.Properties.Add("Property1", "Value1"); var item = TelemetryItemTestHelper.SerializeDeserializeTelemetryItem<PageViewTelemetry, DataPlatformModel.PageViewData>(expected); // NOTE: It's correct that we use the v1 name here, and therefore we test against it. Assert.Equal(item.Name, Microsoft.Developer.Analytics.DataCollection.Model.v1.ItemType.PageView); Assert.Equal(typeof(DataPlatformModel.PageViewData).Name, item.Data.BaseType); Assert.Equal(2, item.Data.BaseData.Ver); Assert.Equal(expected.Name, item.Data.BaseData.Name); Assert.Equal(expected.Duration, item.Data.BaseData.Duration); Assert.Equal(expected.Url.ToString(), item.Data.BaseData.Url); Assert.Equal(expected.Metrics, item.Data.BaseData.Measurements); Assert.Equal(expected.Properties.ToArray(), item.Data.BaseData.Properties.ToArray()); }
public void PageViewTelemetrySerializesToJsonCorrectly() { var expected = new PageViewTelemetry("My Page"); expected.Url = new Uri("http://temp.org/page1"); expected.Duration = TimeSpan.FromSeconds(123); expected.Metrics.Add("Metric1", 30); expected.Properties.Add("Property1", "Value1"); var item = TelemetryItemTestHelper.SerializeDeserializeTelemetryItem <PageViewTelemetry, DataPlatformModel.PageViewData>(expected); // NOTE: It's correct that we use the v1 name here, and therefore we test against it. Assert.Equal(item.Name, Microsoft.Developer.Analytics.DataCollection.Model.v1.ItemType.PageView); Assert.Equal(typeof(DataPlatformModel.PageViewData).Name, item.Data.BaseType); Assert.Equal(2, item.Data.BaseData.Ver); Assert.Equal(expected.Name, item.Data.BaseData.Name); Assert.Equal(expected.Duration, item.Data.BaseData.Duration); Assert.Equal(expected.Url.ToString(), item.Data.BaseData.Url); Assert.Equal(expected.Metrics, item.Data.BaseData.Measurements); Assert.Equal(expected.Properties.ToArray(), item.Data.BaseData.Properties.ToArray()); }
public void PageViewTelemetryReturnsDefaultDurationAsTimespanZero() { PageViewTelemetry item = new PageViewTelemetry(); Assert.Equal(TimeSpan.Zero, item.Duration); }
public void PageViewTelemetryReturnsNonNullContext() { PageViewTelemetry item = new PageViewTelemetry(); Assert.NotNull(item.Context); }