Skip to content

Commit

Permalink
Merge pull request #3 from Microsoft/develop
Browse files Browse the repository at this point in the history
Fetching changes from Microsoft repo to the clone
  • Loading branch information
cijothomas committed Oct 19, 2015
2 parents e678c45 + f8b115e commit 571cdb3
Show file tree
Hide file tree
Showing 63 changed files with 1,652 additions and 371 deletions.
2 changes: 2 additions & 0 deletions Microsoft.ApplicationInsights.Channels.sln
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
Test\Persistence.Test\Shared.Tests\Shared.Tests.projitems*{bf0ac726-de9a-4da2-8a24-e8b8bc4b2479}*SharedItemsImports = 13
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
src\Core\Managed\Shared\Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
Test\Persistence.Test\TestFramework\Shared\TestFramework.Shared.projitems*{9f9c3d52-abb9-461a-b1b6-a01bb5cecd93}*SharedItemsImports = 4
src\TelemetryChannels\PersistenceChannel\Shared\Shared.projitems*{27bf043b-b716-44cf-940e-33a106cde314}*SharedItemsImports = 4
Expand All @@ -114,6 +115,7 @@ Global
Test\Persistence.Test\TestFramework\Shared\TestFramework.Shared.projitems*{b3ad9230-7e7a-4c82-8a7e-f297eeef8bb8}*SharedItemsImports = 4
Test\ServerTelemetryChannel.Test\TestFramework\Shared\TestFramework.Shared.projitems*{1be54ee7-6627-4206-86dd-3d2c709a1500}*SharedItemsImports = 4
Test\ServerTelemetryChannel.Test\TestFramework\Shared\TestFramework.Shared.projitems*{9718f051-147f-4f5f-9ff3-c926430efcf7}*SharedItemsImports = 13
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{cd752cd2-6711-4ad7-b5c8-f8c23cf076b1}*SharedItemsImports = 4
src\Core\Managed\Shared\Shared.projitems*{cd752cd2-6711-4ad7-b5c8-f8c23cf076b1}*SharedItemsImports = 4
Test\ServerTelemetryChannel.Test\Shared.Tests\Shared.Tests.projitems*{a7ccc704-cca9-492a-bb8a-3de5ee9aeac8}*SharedItemsImports = 4
src\TelemetryChannels\ServerTelemetryChannel\Shared\Shared.projitems*{18ce7397-7566-46d6-a52d-3b441363b326}*SharedItemsImports = 4
Expand Down
12 changes: 10 additions & 2 deletions Microsoft.ApplicationInsights.sln
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,17 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Operation.CC.Shared", "src\
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Operation.CC.Tests.Shared", "Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.shproj", "{4DC2927F-BB78-4363-8428-0F02955064BC}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Operation.AL.Shared", "src\Core\Managed\Operation.AL.Shared\Operation.AL.Shared.shproj", "{21350114-0BF7-4F90-9732-5395840E8CBB}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Operation.AL.Tests.Shared", "Test\CoreSDK.Test\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.shproj", "{4E54ED64-28B4-484F-AD5E-089FD2EC9B8B}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
src\Core\Managed\Shared\Shared.projitems*{412659ca-49b0-4834-bfbf-8183055083c8}*SharedItemsImports = 4
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{9f9c3d52-abb9-461a-b1b6-a01bb5cecd93}*SharedItemsImports = 4
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{30717095-904b-47b6-a76b-3d7a21f14e18}*SharedItemsImports = 4
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{0927e682-4a56-46b6-8125-94fa066b2f57}*SharedItemsImports = 4
Test\CoreSDK.Test\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.projitems*{0927e682-4a56-46b6-8125-94fa066b2f57}*SharedItemsImports = 4
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{0927e682-4a56-46b6-8125-94fa066b2f57}*SharedItemsImports = 4
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{0927e682-4a56-45b6-8125-94fa066b2f57}*SharedItemsImports = 4
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{0927e682-4a56-45b6-8125-94fa066b2f57}*SharedItemsImports = 4
Expand All @@ -99,7 +103,7 @@ Global
Test\CoreSDK.Test\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems*{394a78e5-2f8f-4d2d-ae08-027380c9f6b2}*SharedItemsImports = 4
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{394a78e5-2f8f-4d2d-ae08-027380c9f6b2}*SharedItemsImports = 4
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{f76c6cbd-29b0-4564-bdcb-c969f8fec136}*SharedItemsImports = 13
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{958cfe53-53b7-4e26-846d-da3f214013e6}*SharedItemsImports = 4
src\Core\Managed\Operation.AL.Shared\Operation.AL.Shared.projitems*{958cfe53-53b7-4e26-846d-da3f214013e6}*SharedItemsImports = 4
src\Core\Managed\Shared\Shared.projitems*{958cfe53-53b7-4e26-846d-da3f214013e6}*SharedItemsImports = 4
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{6587b432-e16a-4d26-93e1-bf12449fdb32}*SharedItemsImports = 4
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{b3ad9230-7e7a-4c82-8a7e-f297eeef8bb8}*SharedItemsImports = 4
Expand All @@ -109,9 +113,11 @@ Global
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{ff8678db-8ff0-4507-a793-2ff896fc7ad7}*SharedItemsImports = 4
src\Core\Managed\Shared\Shared.projitems*{c1aaa703-5e32-45c0-a69d-f46d1c659ae4}*SharedItemsImports = 13
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{d7d4e3f5-ec0d-47c9-90cc-56f612976122}*SharedItemsImports = 4
Test\CoreSDK.Test\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.projitems*{4e54ed64-28b4-484f-ad5e-089fd2ec9b8b}*SharedItemsImports = 13
Test\CoreSDK.Test\Shared\Core.Shared.Tests.projitems*{c4a0db5b-0988-4e04-b9b8-bcf3b0842000}*SharedItemsImports = 13
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{1ad07f5f-80e4-4020-b944-ee20756e3b24}*SharedItemsImports = 4
Test\CoreSDK.Test\TestFramework\Shared\TestFramework.Shared.projitems*{804af8fd-87f5-48ae-90c8-70433018b76e}*SharedItemsImports = 4
src\Core\Managed\Operation.AL.Shared\Operation.AL.Shared.projitems*{21350114-0bf7-4f90-9732-5395840e8cbb}*SharedItemsImports = 13
src\Core\Managed\Operation.CC.Shared\Operation.CC.Shared.projitems*{21350114-0bf7-4f90-9732-5395840e8ce0}*SharedItemsImports = 13
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -511,5 +517,7 @@ Global
{D7D4E3F5-EC0D-47C9-90CC-56F612976122} = {BED5EB47-4AB1-4387-98B6-83CC327D6D16}
{21350114-0BF7-4F90-9732-5395840E8CE0} = {68CC2924-E162-44BE-8D7A-DBA385365585}
{4DC2927F-BB78-4363-8428-0F02955064BC} = {C2FEEDE5-8CAE-41A4-8932-42D284A86EA7}
{21350114-0BF7-4F90-9732-5395840E8CBB} = {68CC2924-E162-44BE-8D7A-DBA385365585}
{4E54ED64-28B4-484F-AD5E-089FD2EC9B8B} = {C2FEEDE5-8CAE-41A4-8932-42D284A86EA7}
EndGlobalSection
EndGlobal
2 changes: 1 addition & 1 deletion NuGet.targets
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
Condition=" '$(OS)' == 'Windows_NT' " />
</Target>

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildFrameworkToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<OutputFilename ParameterType="System.String" Required="true" />
</ParameterGroup>
Expand Down
2 changes: 1 addition & 1 deletion Package.targets
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
</Exec>
</Target>

<UsingTask TaskName="GetFileVersionInfo" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
<UsingTask TaskName="GetFileVersionInfo" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildFrameworkToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
<ParameterGroup>
<File ParameterType="System.String" Required="true" />
<VersionInfo ParameterType="Microsoft.Build.Framework.ITaskItem" Output="true" />
Expand Down
21 changes: 21 additions & 0 deletions PushNugetPackages.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
setlocal

set BINROOT=%TF_BUILD_BINARIESDIRECTORY%\Release\NuGet
if not exist %BINROOT% echo "Error: '%BINROOT%' does not exist."&goto :eof

set NUGET=%TF_BUILD_SOURCESDIRECTORY%\NuGet.exe
if not exist %NUGET% echo "Error: '%NUGET%' does not exist."&goto :eof

set NUGET_GALLERY=https://www.myget.org/F/applicationinsights/api/v2/package

for /r "%BINROOT%" %%P in (*.nupkg) do call :push %%P
goto :eof

:push
set PACKAGE=%1
if %PACKAGE:.symbols.=% == %PACKAGE% (
%NUGET% push "%PACKAGE%" %1 -source %NUGET_GALLERY%
)
goto :eof

endlocal
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,128 @@ public void LoadInstanceCreatesNewInstanceOfExpectedTypeWhenPropertiesAreSpecifi

#endregion

#region TelemetryProcesors
[TestMethod]
public void InitializeTelemetryProcessorsFromConfigurationFile()
{
string configFileContents = Configuration(
@"
<TelemetryProcessors>
<Add Type=""Microsoft.ApplicationInsights.TestFramework.StubTelemetryProcessor, Microsoft.ApplicationInsights.TestFramework"" />
<Add Type=""Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactoryTest+StubTelemetryProcessor2, Microsoft.ApplicationInsights.Core.Net40.Tests"" />
</TelemetryProcessors>"
);

var platform = new StubPlatform { OnReadConfigurationXml = () => configFileContents };
PlatformSingleton.Current = platform;
try
{
var configuration = new TelemetryConfiguration();
new TestableTelemetryConfigurationFactory().Initialize(configuration);

// Assume that LoadFromXml method is called, tested separately
Assert.True(configuration.TelemetryProcessors != null);
Assert.IsType<StubTelemetryProcessor>(configuration.TelemetryProcessors.FirstTelemetryProcessor);

//validate the chain linking stub1->stub2->transmission
var tp1 = (StubTelemetryProcessor) configuration.TelemetryProcessors.FirstTelemetryProcessor;
var tp2 = (StubTelemetryProcessor2) tp1.next;
var tpLast = (TransmissionProcessor) tp2.next;
}
finally
{
PlatformSingleton.Current = null;
}
}

[TestMethod]
public void InitializeTelemetryProcessorFromConfigurationFile()
{
string configFileContents = Configuration(
@"
<TelemetryProcessors>
<Add Type=""Microsoft.ApplicationInsights.TestFramework.StubTelemetryProcessor, Microsoft.ApplicationInsights.TestFramework"" />
</TelemetryProcessors>"
);
var platform = new StubPlatform { OnReadConfigurationXml = () => configFileContents };
PlatformSingleton.Current = platform;
try
{
var configuration = new TelemetryConfiguration();
new TestableTelemetryConfigurationFactory().Initialize(configuration);

// Assume that LoadFromXml method is called, tested separately
Assert.True(configuration.TelemetryProcessors != null);
Assert.IsType<StubTelemetryProcessor>(configuration.TelemetryProcessors.FirstTelemetryProcessor);

//validate the chain linking stub1->transmission
var stub1 = (StubTelemetryProcessor)configuration.TelemetryProcessors.FirstTelemetryProcessor;
var transmission = (TransmissionProcessor)stub1.next;
}
finally
{
PlatformSingleton.Current = null;
}
}

[TestMethod]
public void InitializeTelemetryProcessorFromConfigurationFileWhenNoTelemetryProcessorsTagSpecified()
{
// no TelemetryProcessors - TransmissionProcessor should be automatically created.
string configFileContents = Configuration(
@"
<!--<TelemetryProcessors>
<Add Type=""Microsoft.ApplicationInsights.TestFramework.StubTelemetryProcessor, Microsoft.ApplicationInsights.TestFramework"" />
<Add Type=""Microsoft.ApplicationInsights.TestFramework.StubTelemetryProcessor2, Microsoft.ApplicationInsights.TestFramework"" />
</TelemetryProcessors>-->"
);
var platform = new StubPlatform { OnReadConfigurationXml = () => configFileContents };
PlatformSingleton.Current = platform;
try
{
var configuration = new TelemetryConfiguration();
new TestableTelemetryConfigurationFactory().Initialize(configuration);

// Assume that LoadFromXml method is called, tested separately
Assert.True(configuration.TelemetryProcessors != null);
Assert.IsType<TransmissionProcessor>(configuration.TelemetryProcessors.FirstTelemetryProcessor);
}
finally
{
PlatformSingleton.Current = null;
}
}

[TestMethod]
public void InitializeTelemetryProcessorFromConfigurationFileWhenEmptyTelemetryProcessorsTagSpecified()
{
// no TelemetryProcessors - TransmissionProcessor should be automatically created.
string configFileContents = Configuration(
@"
<TelemetryInitializers>
<Add Type=""Microsoft.ApplicationInsights.TestFramework.StubTelemetryInitializer, Microsoft.ApplicationInsights.TestFramework"" />
</TelemetryInitializers>
<TelemetryProcessors>
</TelemetryProcessors>"
);
var platform = new StubPlatform { OnReadConfigurationXml = () => configFileContents };
PlatformSingleton.Current = platform;
try
{
var configuration = new TelemetryConfiguration();
new TestableTelemetryConfigurationFactory().Initialize(configuration);

// Assume that LoadFromXml method is called, tested separately
Assert.True(configuration.TelemetryProcessors != null);
Assert.IsType<TransmissionProcessor>(configuration.TelemetryProcessors.FirstTelemetryProcessor);
}
finally
{
PlatformSingleton.Current = null;
}
}
#endregion

#region LoadInstances<T>

[TestMethod]
Expand All @@ -366,7 +488,7 @@ public void LoadInstancesPopulatesListWithInstancesOfSpecifiedType()
Assert.Equal(1, instances.Count);
Assert.Equal(typeof(StubTelemetryInitializer), instances[0].GetType());
}

[TestMethod]
public void LoadInstancesUpdatesInstanceWithMatchingType() // TODO: Why? This is inconsistent with the name of the element, Add.
{
Expand Down Expand Up @@ -575,7 +697,7 @@ private static string Configuration(string innerXml)

private class TestableTelemetryConfigurationFactory : TelemetryConfigurationFactory
{
public static new object CreateInstance(Type interfaceType, string typeName)
public static object CreateInstance(Type interfaceType, string typeName)
{
return TelemetryConfigurationFactory.CreateInstance(interfaceType, typeName);
}
Expand All @@ -585,7 +707,7 @@ private class TestableTelemetryConfigurationFactory : TelemetryConfigurationFact
TelemetryConfigurationFactory.LoadFromXml(configuration, xml);
}

public static new object LoadInstance(XElement definition, Type expectedType, object instance)
public static object LoadInstance(XElement definition, Type expectedType, object instance)
{
return TelemetryConfigurationFactory.LoadInstance(definition, expectedType, instance);
}
Expand Down Expand Up @@ -667,5 +789,22 @@ public void Initialize(TelemetryConfiguration configuration)
}
}
}

public class StubTelemetryProcessor2 : ITelemetryProcessor
{
/// <summary>
/// Made public for testing if the chain of processors is correctly created.
/// </summary>
public ITelemetryProcessor next;

public StubTelemetryProcessor2(ITelemetryProcessor next)
{
this.next = next;
}
public void Process(ITelemetry telemetry)
{

}
}
}
}
2 changes: 1 addition & 1 deletion Test/CoreSDK.Test/Net46/Core.Net46.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@
</None>
</ItemGroup>
<Import Project="..\Shared\Core.Shared.Tests.projitems" Label="Shared" />
<Import Project="..\Operation.CC.Shared.Tests\Operation.CC.Tests.Shared.projitems" Label="Shared" />
<Import Project="..\Operation.AL.Shared.Tests\Operation.AL.Tests.Shared.projitems" Label="Shared" />
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\..\..\packages\StyleCop.MSBuild.4.7.49.0\build\StyleCop.MSBuild.Targets" Condition="Exists('..\..\..\..\packages\StyleCop.MSBuild.4.7.49.0\build\StyleCop.MSBuild.Targets')" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
namespace Microsoft.ApplicationInsights.Extensibility.Implementation
{
using System;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.VisualStudio.TestTools.UnitTesting;

/// <summary>
/// Tests corresponding to TelemetryClientExtension methods.
/// </summary>
[TestClass]
public class AsyncLoaclBasedOperationHolderTests
{
/// <summary>
/// Tests the scenario if OperationItem throws ArgumentNullException with null telemetry client.
/// </summary>
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void CreatingOperationItemWithNullTelemetryClientThrowsArgumentNullException()
{
var operationItem = new AsyncLocalBasedOperationHolder<DependencyTelemetry>(null, new DependencyTelemetry());
}

/// <summary>
/// Tests the scenario if OperationItem throws ArgumentNullException with null telemetry.
/// </summary>
[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void CreatingOperationItemWithNullTelemetryThrowsArgumentNullException()
{
var operationItem = new AsyncLocalBasedOperationHolder<DependencyTelemetry>(new TelemetryClient(), null);
}

/// <summary>
/// Tests the scenario if creating OperationItem does not throw exception if arguments are not null.
/// </summary>
[TestMethod]
public void CreatingOperationItemDoesNotThrowOnPassingValidArguments()
{
var operationItem = new AsyncLocalBasedOperationHolder<DependencyTelemetry>(new TelemetryClient(), new DependencyTelemetry());
}
}
}
Loading

0 comments on commit 571cdb3

Please sign in to comment.