This commit is contained in:
John Taylor 2018-06-15 15:13:32 -07:00
Родитель b56895b262
Коммит 3c90081287
34 изменённых файлов: 373 добавлений и 616 удалений

Просмотреть файл

@ -24,8 +24,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Connector", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Schema", "libraries\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj", "{C1F54CDC-AD1D-45BB-8F7D-F49E411AFAF1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Core", "libraries\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj", "{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder", "libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj", "{ADA8AB8B-2066-4193-B8F7-985669B23E00}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Samples.EchoBot-Console", "samples\Microsoft.Bot.Samples.EchoBot-Console\Microsoft.Bot.Samples.EchoBot-Console.csproj", "{C8DF8AE3-0A4D-445D-993E-F7A1784BFDD4}"
@ -50,12 +48,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Bot.Samples.EchoB
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Samples.Connector.EchoBot", "samples\Microsoft.Bot.Samples.Connector.EchoBot\Microsoft.Bot.Samples.Connector.EchoBot.csproj", "{8D6F4046-0971-4E24-8E4D-F8175C6DFF2B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Core.Extensions", "libraries\Microsoft.Bot.Builder.Core.Extensions\Microsoft.Bot.Builder.Core.Extensions.csproj", "{183B3324-4CFF-477A-8EAE-73953D3E383D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Core.Tests", "tests\Microsoft.Bot.Builder.Core.Tests\Microsoft.Bot.Builder.Core.Tests.csproj", "{99100609-26D5-4BBD-ACD7-4CC810977A06}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Core.Extensions.Tests", "tests\Microsoft.Bot.Builder.Core.Extensions.Tests\Microsoft.Bot.Builder.Core.Extensions.Tests.csproj", "{6034B365-C87B-4A90-A8C7-F24374BFE2E7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.TemplateManager", "libraries\Microsoft.Bot.Builder.TemplateManager\Microsoft.Bot.Builder.TemplateManager.csproj", "{EED5F0D3-6F00-4ED1-9108-5ADCB10A3734}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.TemplateManager.Tests", "tests\Microsoft.Bot.Builder.TemplateManager\Microsoft.Bot.Builder.TemplateManager.Tests.csproj", "{C93F6192-0123-4121-AD92-374A71E4B0F3}"
@ -98,6 +90,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Integ
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Bot.Builder.Integration.AspNet.WebApi.Tests", "tests\integration\Microsoft.Bot.Builder.Integration.AspNet.WebApi.Tests\Microsoft.Bot.Builder.Integration.AspNet.WebApi.Tests.csproj", "{2614D290-1345-4A41-BE90-F85F817CEADE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Tests", "tests\Microsoft.Bot.Builder.Tests\Microsoft.Bot.Builder.Tests.csproj", "{35F9B8A8-1974-4795-930B-5E4980EE85E5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug - NuGet Packages|Any CPU = Debug - NuGet Packages|Any CPU
@ -166,14 +160,6 @@ Global
{C1F54CDC-AD1D-45BB-8F7D-F49E411AFAF1}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
{C1F54CDC-AD1D-45BB-8F7D-F49E411AFAF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1F54CDC-AD1D-45BB-8F7D-F49E411AFAF1}.Release|Any CPU.Build.0 = Release|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug - NuGet Packages|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Debug - NuGet Packages|Any CPU.Build.0 = Debug - NuGet Packages|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Documentation|Any CPU.ActiveCfg = Documentation|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4}.Release|Any CPU.Build.0 = Release|Any CPU
{ADA8AB8B-2066-4193-B8F7-985669B23E00}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug - NuGet Packages|Any CPU
{ADA8AB8B-2066-4193-B8F7-985669B23E00}.Debug - NuGet Packages|Any CPU.Build.0 = Debug - NuGet Packages|Any CPU
{ADA8AB8B-2066-4193-B8F7-985669B23E00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@ -255,28 +241,6 @@ Global
{8D6F4046-0971-4E24-8E4D-F8175C6DFF2B}.Documentation|Any CPU.ActiveCfg = Documentation|Any CPU
{8D6F4046-0971-4E24-8E4D-F8175C6DFF2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8D6F4046-0971-4E24-8E4D-F8175C6DFF2B}.Release|Any CPU.Build.0 = Release|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug - NuGet Packages|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Debug - NuGet Packages|Any CPU.Build.0 = Debug - NuGet Packages|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Documentation|Any CPU.ActiveCfg = Documentation|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Documentation|Any CPU.Build.0 = Documentation|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{183B3324-4CFF-477A-8EAE-73953D3E383D}.Release|Any CPU.Build.0 = Release|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Debug - NuGet Packages|Any CPU.Build.0 = Debug|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Documentation|Any CPU.ActiveCfg = Documentation|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99100609-26D5-4BBD-ACD7-4CC810977A06}.Release|Any CPU.Build.0 = Release|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Debug - NuGet Packages|Any CPU.Build.0 = Debug|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Documentation|Any CPU.ActiveCfg = Documentation|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6034B365-C87B-4A90-A8C7-F24374BFE2E7}.Release|Any CPU.Build.0 = Release|Any CPU
{EED5F0D3-6F00-4ED1-9108-5ADCB10A3734}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug - NuGet Packages|Any CPU
{EED5F0D3-6F00-4ED1-9108-5ADCB10A3734}.Debug - NuGet Packages|Any CPU.Build.0 = Debug - NuGet Packages|Any CPU
{EED5F0D3-6F00-4ED1-9108-5ADCB10A3734}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
@ -412,6 +376,14 @@ Global
{2614D290-1345-4A41-BE90-F85F817CEADE}.Documentation|Any CPU.Build.0 = Debug|Any CPU
{2614D290-1345-4A41-BE90-F85F817CEADE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2614D290-1345-4A41-BE90-F85F817CEADE}.Release|Any CPU.Build.0 = Release|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Debug - NuGet Packages|Any CPU.ActiveCfg = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Debug - NuGet Packages|Any CPU.Build.0 = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Documentation|Any CPU.ActiveCfg = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Documentation|Any CPU.Build.0 = Debug|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35F9B8A8-1974-4795-930B-5E4980EE85E5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -425,7 +397,6 @@ Global
{3B5BFCCB-23CF-4849-8B2C-74D05DC3E402} = {3ADFB27A-95FA-4330-B211-1D66A29A17AB}
{6462DA5D-27DC-4CD5-9467-5EFB998FD838} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{C1F54CDC-AD1D-45BB-8F7D-F49E411AFAF1} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{F0C150E2-9B8A-444C-B70E-97AD918CB3D4} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{ADA8AB8B-2066-4193-B8F7-985669B23E00} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{C8DF8AE3-0A4D-445D-993E-F7A1784BFDD4} = {3ADFB27A-95FA-4330-B211-1D66A29A17AB}
{BF414C86-DB3B-4022-9B29-DCE8AA954C12} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
@ -438,9 +409,6 @@ Global
{BEDBA9E2-FE6E-44D9-914D-03AE63EF6768} = {3ADFB27A-95FA-4330-B211-1D66A29A17AB}
{AAC0F76C-4114-4D64-A99E-8BE4C43982F9} = {3ADFB27A-95FA-4330-B211-1D66A29A17AB}
{8D6F4046-0971-4E24-8E4D-F8175C6DFF2B} = {3ADFB27A-95FA-4330-B211-1D66A29A17AB}
{183B3324-4CFF-477A-8EAE-73953D3E383D} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{99100609-26D5-4BBD-ACD7-4CC810977A06} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
{6034B365-C87B-4A90-A8C7-F24374BFE2E7} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
{EED5F0D3-6F00-4ED1-9108-5ADCB10A3734} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
{C93F6192-0123-4121-AD92-374A71E4B0F3} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
{2A46FEEF-4FD9-4DD5-8650-39C36CFDF2BB} = {4269F3C3-6B42-419B-B64A-3E6DC0F1574A}
@ -462,6 +430,7 @@ Global
{0A0E26B0-7A46-4F1A-8BFE-9A763FDF6CF8} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
{62C4DC83-3B07-45D7-856E-224FFB368E5F} = {0A0E26B0-7A46-4F1A-8BFE-9A763FDF6CF8}
{2614D290-1345-4A41-BE90-F85F817CEADE} = {0A0E26B0-7A46-4F1A-8BFE-9A763FDF6CF8}
{35F9B8A8-1974-4795-930B-5E4980EE85E5} = {AD743B78-D61F-4FBF-B620-FA83CE599A50}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7173C9F3-A7F9-496E-9078-9156E35D6E16}

Просмотреть файл

@ -1,75 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version Condition=" '$(BUILD_BUILDNUMBER)' == '' ">4.0.0-local</Version>
<Version Condition=" '$(BUILD_BUILDNUMBER)' != '' ">$(BUILD_BUILDNUMBER)</Version>
<PackageVersion Condition=" '$(PackageVersion)' == '' ">4.0.0-local</PackageVersion>
<PackageVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</PackageVersion>
<Configurations>Debug;Release;Documentation;Debug - NuGet Packages;</Configurations>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>Microsoft.Bot.Builder.Core.Extensions</PackageId>
<Description>This library implements extensions for building bots using the Microsoft Bot Builder.</Description>
<Summary>This library implements extensions for building bots using the Microsoft Bot Builder.</Summary>
</PropertyGroup>
<PropertyGroup>
<Company>Microsoft</Company>
<Authors>microsoft,BotFramework,nugetbotbuilder</Authors>
<Product>Microsoft Bot Builder SDK</Product>
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
<PackageProjectUrl>https://github.com/Microsoft/botbuilder-dotnet</PackageProjectUrl>
<PackageIconUrl>http://docs.botframework.com/images/bot_icon.png</PackageIconUrl>
<PackageLicenseUrl>https://github.com/Microsoft/BotBuilder/blob/master/LICENSE</PackageLicenseUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/Microsoft/botbuilder-dotnet</RepositoryUrl>
<LicenseUrl>https://github.com/Microsoft/BotBuilder-dotnet/blob/master/LICENSE</LicenseUrl>
<RepositoryType />
<PackageTags>bots;ai;botframework;botbuilder</PackageTags>
<NeutralLanguage />
</PropertyGroup>
<PropertyGroup Condition="$(Configuration) == 'Debug - NuGet Packages'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Documentation|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile>bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Core.Extensions.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile>bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Core.Extensions.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.4.1" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="Microsoft.Bot.Schema" Condition=" '$(PackageVersion)' == '' " Version="4.0.0-local" />
<PackageReference Include="Microsoft.Bot.Schema" Condition=" '$(PackageVersion)' != '' " Version="$(PackageVersion)" />
<PackageReference Include="SourceLink.Create.CommandLine" Version="2.8.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,76 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version Condition=" '$(BUILD_BUILDNUMBER)' == '' ">4.0.0-local</Version>
<Version Condition=" '$(BUILD_BUILDNUMBER)' != '' ">$(BUILD_BUILDNUMBER)</Version>
<PackageVersion Condition=" '$(PackageVersion)' == '' ">4.0.0-local</PackageVersion>
<PackageVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)</PackageVersion>
<Configurations>Debug;Release;Documentation;Debug - NuGet Packages;</Configurations>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<SignAssembly>true</SignAssembly>
<DelaySign>true</DelaySign>
<AssemblyOriginatorKeyFile>..\..\build\35MSSharedLib1024.snk</AssemblyOriginatorKeyFile>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>Microsoft.Bot.Builder.Core</PackageId>
<Description>This library implements core C# classes for building bots using the Microsoft Bot Builder.</Description>
<Summary>This library implements core C# classes for building bots using the Microsoft Bot Builder.</Summary>
</PropertyGroup>
<PropertyGroup>
<Company>Microsoft</Company>
<Authors>microsoft,BotFramework,nugetbotbuilder</Authors>
<Product>Microsoft Bot Builder SDK</Product>
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
<PackageProjectUrl>https://github.com/Microsoft/botbuilder-dotnet</PackageProjectUrl>
<PackageIconUrl>http://docs.botframework.com/images/bot_icon.png</PackageIconUrl>
<PackageLicenseUrl>https://github.com/Microsoft/BotBuilder/blob/master/LICENSE</PackageLicenseUrl>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/Microsoft/botbuilder-dotnet</RepositoryUrl>
<LicenseUrl>https://github.com/Microsoft/BotBuilder-dotnet/blob/master/LICENSE</LicenseUrl>
<RepositoryType />
<PackageTags>bots;ai;botframework;botbuilder</PackageTags>
<NeutralLanguage />
</PropertyGroup>
<PropertyGroup Condition="$(Configuration) == 'Debug - NuGet Packages'">
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile></DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Documentation|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile>bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Core.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998;</NoWarn>
<DocumentationFile>bin\$(Configuration)\netstandard2.0\Microsoft.Bot.Builder.Core.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
<PackageReference Include="Microsoft.Bot.Schema" Condition=" '$(PackageVersion)' == '' " Version="4.0.0-local" />
<PackageReference Include="Microsoft.Bot.Schema" Condition=" '$(PackageVersion)' != '' " Version="$(PackageVersion)" />
<PackageReference Include="SourceLink.Create.CommandLine" Version="2.8.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Microsoft.Bot.Connector\Microsoft.Bot.Connector.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -115,10 +115,6 @@
<Project>{12cae029-7b8d-4928-8504-28746c36adb3}</Project>
<Name>RView</Name>
</ProjectReference>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj">
<Project>{f0c150e2-9b8a-444c-b70e-97ad918cb3d4}</Project>
<Name>Microsoft.Bot.Builder.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj">
<Project>{ada8ab8b-2066-4193-b8f7-985669b23e00}</Project>
<Name>Microsoft.Bot.Builder</Name>

Просмотреть файл

@ -16,7 +16,7 @@
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Ai.LUIS\Microsoft.Bot.Builder.Ai.LUIS.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Core.Extensions.Tests\Microsoft.Bot.Builder.Core.Extensions.Tests.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Tests\Microsoft.Bot.Builder.Tests.csproj" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -19,7 +19,7 @@
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Ai.Translation\Microsoft.Bot.Builder.Ai.Translation.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Azure\Microsoft.Bot.Builder.Azure.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Core.Extensions.Tests\Microsoft.Bot.Builder.Core.Extensions.Tests.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Tests\Microsoft.Bot.Builder.Tests.csproj" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -18,7 +18,7 @@
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Ai.Translation\Microsoft.Bot.Builder.Ai.Translation.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Azure\Microsoft.Bot.Builder.Azure.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Core.Extensions.Tests\Microsoft.Bot.Builder.Core.Extensions.Tests.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Tests\Microsoft.Bot.Builder.Tests.csproj" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -16,7 +16,7 @@
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Azure\Microsoft.Bot.Builder.Azure.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Core.Extensions.Tests\Microsoft.Bot.Builder.Core.Extensions.Tests.csproj" />
<ProjectReference Include="..\Microsoft.Bot.Builder.Tests\Microsoft.Bot.Builder.Tests.csproj" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -42,7 +42,6 @@
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Classic\Microsoft.Bot.Builder.Classic\Microsoft.Bot.Builder.Classic.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Connector\Microsoft.Bot.Connector.csproj" />
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Schema\Microsoft.Bot.Schema.csproj" />

Просмотреть файл

@ -1,35 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<IsPackable>false</IsPackable>
<Configurations>Debug;Release;Documentation</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Documentation|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="MSTest.TestAdapter" Version="1.2.1" />
<PackageReference Include="MSTest.TestFramework" Version="1.2.1" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,35 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<IsPackable>false</IsPackable>
<Configurations>Debug;Release;Documentation</Configurations>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Documentation|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<NoWarn>1701;1702;1705;1998</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.7.0" />
<PackageReference Include="MSTest.TestAdapter" Version="1.2.1" />
<PackageReference Include="MSTest.TestFramework" Version="1.2.1" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
</Project>

Просмотреть файл

@ -3,7 +3,7 @@ using System.Threading.Tasks;
using Microsoft.Bot.Builder.Adapters;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
[TestClass]
[TestCategory("Middleware")]

Просмотреть файл

@ -5,7 +5,7 @@ using System.Threading.Tasks;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
[TestClass]
[TestCategory("BotAdapter")]

Просмотреть файл

@ -0,0 +1,19 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
<PackageReference Include="MSTest.TestAdapter" Version="1.1.18" />
<PackageReference Include="MSTest.TestFramework" Version="1.1.18" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\libraries\Microsoft.Bot.Builder\Microsoft.Bot.Builder.csproj" />
</ItemGroup>
</Project>

Просмотреть файл

@ -2,7 +2,7 @@
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
[TestClass]
[TestCategory("Russian Doll Middleware, Nested Middleware sets")]

Просмотреть файл

@ -5,7 +5,7 @@ using System.Threading.Tasks;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
public class SimpleAdapter : BotAdapter
{

Просмотреть файл

@ -1,271 +1,271 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Extensions.Tests
{
public class StorageBaseTests
{
protected async Task _readUnknownTest(IStorage storage)
{
var result = await storage.Read(new[] { "unknown" });
Assert.IsNotNull(result, "result should not be null");
Assert.IsNull(result.FirstOrDefault(e => e.Key == "unknown").Value, "\"unknown\" key should have returned no value");
}
protected async Task _createObjectTest(IStorage storage)
{
var storeItems = new Dictionary<string, object>
{
["createPoco"] = new PocoItem() { Id = "1" },
["createPocoStoreItem"] = new PocoStoreItem() { Id = "2" },
};
await storage.Write(storeItems);
var readStoreItems = new Dictionary<string, object>(await storage.Read(storeItems.Keys.ToArray()));
Assert.IsInstanceOfType(readStoreItems["createPoco"], typeof(PocoItem));
Assert.IsInstanceOfType(readStoreItems["createPocoStoreItem"], typeof(PocoStoreItem));
var createPoco = readStoreItems["createPoco"] as PocoItem;
Assert.IsNotNull(createPoco, "createPoco should not be null");
Assert.AreEqual(createPoco.Id, "1", "createPoco.id should be 1");
var createPocoStoreItem = readStoreItems["createPocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(createPocoStoreItem, "createPocoStoreItem should not be null");
Assert.AreEqual(createPocoStoreItem.Id, "2", "createPocoStoreItem.id should be 2");
Assert.IsNotNull(createPocoStoreItem.eTag, "createPocoStoreItem.eTag should not be null");
}
protected async Task _handleCrazyKeys(IStorage storage)
{
var key = "!@#$%^&*()~/\\><,.?';\"`~";
var storeItem = new PocoStoreItem() { Id = "1" };
var dict = new Dictionary<string, object>() { { key, storeItem } };
await storage.Write(dict);
var storeItems = await storage.Read(key);
storeItem = storeItems.FirstOrDefault(si => si.Key == key).Value as PocoStoreItem;
Assert.IsNotNull(storeItem);
Assert.AreEqual("1", storeItem.Id);
}
public class TypedObject
{
public string Name { get; set; }
}
protected async Task _updateObjectTest(IStorage storage)
{
var originalPocoItem = new PocoItem() { Id = "1", Count = 1 };
var originalPocoStoreItem = new PocoStoreItem() { Id = "1", Count = 1 };
// first write should work
var dict = new Dictionary<string, object>()
{
{ "pocoItem", originalPocoItem },
{ "pocoStoreItem", originalPocoStoreItem }
};
await storage.Write(dict);
var loadedStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var updatePocoItem = loadedStoreItems["pocoItem"] as PocoItem;
var updatePocoStoreItem = loadedStoreItems["pocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(updatePocoStoreItem.eTag, "updatePocoItem.eTag should not be null");
// 2nd write should work, because we have new etag, or no etag
updatePocoItem.Count++;
updatePocoStoreItem.Count++;
await storage.Write(loadedStoreItems);
var reloadedStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var reloeadedUpdatePocoItem = reloadedStoreItems["pocoItem"] as PocoItem;
var reloadedUpdatePocoStoreItem = reloadedStoreItems["pocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(reloadedUpdatePocoStoreItem.eTag, "updatePocoItem.eTag should not be null");
Assert.AreNotEqual(updatePocoStoreItem.eTag, reloadedUpdatePocoStoreItem.eTag, "updatePocoItem.eTag should not be different");
Assert.AreEqual(2, reloeadedUpdatePocoItem.Count, "updatePocoItem.Count should be 2");
Assert.AreEqual(2, reloadedUpdatePocoStoreItem.Count, "updatePocoStoreItem.Count should be 2");
// write with old etag should succeed for non-storeitem
try
{
updatePocoItem.Count = 123;
await storage.Write(
new Dictionary<string, object>() { { "pocoItem", updatePocoItem } }
);
}
catch
{
Assert.Fail("Should not throw exception on write with pocoItem");
}
// write with old etag should FAIL for storeitem
try
{
updatePocoStoreItem.Count = 123;
await storage.Write(
new Dictionary<string, object>() { { "pocoStoreItem", updatePocoStoreItem } }
);
Assert.Fail("Should have thrown exception on write with store item because of old etag");
}
catch
{
}
var reloadedStoreItems2 = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var reloadedPocoItem2 = reloadedStoreItems2["pocoItem"] as PocoItem;
var reloadedPocoStoreItem2 = reloadedStoreItems2["pocoStoreItem"] as PocoStoreItem;
Assert.AreEqual(123, reloadedPocoItem2.Count);
Assert.AreEqual(2, reloadedPocoStoreItem2.Count);
// write with wildcard etag should work
reloadedPocoItem2.Count = 100;
reloadedPocoStoreItem2.Count = 100;
reloadedPocoStoreItem2.eTag = "*";
var wildcardEtagedict = new Dictionary<string, object>() {
{ "pocoItem", reloadedPocoItem2 },
{ "pocoStoreItem", reloadedPocoStoreItem2 }
};
await storage.Write(wildcardEtagedict);
var reloadedStoreItems3 = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
Assert.AreEqual(100, (reloadedStoreItems3["pocoItem"] as PocoItem).Count);
Assert.AreEqual(100, (reloadedStoreItems3["pocoStoreItem"] as PocoStoreItem).Count);
// write with empty etag should not work
try
{
var reloadedStoreItem4 = (await storage.Read("pocoStoreItem")).OfType<PocoStoreItem>().First();
reloadedStoreItem4.eTag = "";
var dict2 = new Dictionary<string, object>()
{
{ "pocoStoreItem", reloadedStoreItem4 }
};
await storage.Write(dict2);
Assert.Fail("Should have thrown exception on write with storeitem because of empty etag");
}
catch
{
}
var finalStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
Assert.AreEqual(100, (finalStoreItems["pocoItem"] as PocoItem).Count);
Assert.AreEqual(100, (finalStoreItems["pocoStoreItem"] as PocoStoreItem).Count);
}
protected async Task _deleteObjectTest(IStorage storage)
{
//first write should work
var dict = new Dictionary<string, object>()
{
{ "delete1", new PocoStoreItem() { Id = "1", Count = 1 } }
};
await storage.Write(dict);
var storeItems = await storage.Read("delete1");
var storeItem = storeItems.First().Value as PocoStoreItem;
Assert.IsNotNull(storeItem.eTag, "etag should be set");
Assert.AreEqual(1, storeItem.Count);
await storage.Delete("delete1");
var reloadedStoreItems = await storage.Read("delete1");
Assert.IsFalse(reloadedStoreItems.Any(), "no store item should have been found because it was deleted");
}
protected async Task _deleteUnknownObjectTest(IStorage storage)
{
await storage.Delete("unknown_key");
}
protected async Task _batchCreateObjectTest(IStorage storage, long minimumExtraBytes = 0)
{
string[] stringArray = null;
if (minimumExtraBytes > 0)
{
// chunks of maximum string size to fill the extra bytes request
var extraStringCount = (int)(minimumExtraBytes / int.MaxValue);
stringArray = Enumerable.Range(0, extraStringCount).Select(i => new string('X', int.MaxValue / 2)).ToArray();
// Append the remaining string size
stringArray = stringArray.Append(new string('X', (int)(minimumExtraBytes % int.MaxValue) / 2)).ToArray();
}
var storeItemsList = new List<Dictionary<string, object>>(new[]
{
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 0, ExtraBytes = stringArray }},
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 1, ExtraBytes = stringArray }},
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 2, ExtraBytes = stringArray }}
});
// Writing large objects in parallel might raise a Microsoft.Bot.Builder.Core.Extensions.StorageException
try
{
await Task.WhenAll(
storeItemsList.Select(storeItems =>
Task.Run(async () => await storage.Write(storeItems))));
}
catch (Exception ex)
{
Assert.IsInstanceOfType(ex, typeof(BotStorageException));
}
var readStoreItems = new Dictionary<string, object>(await storage.Read("createPoco"));
Assert.IsInstanceOfType(readStoreItems["createPoco"], typeof(PocoItem));
var createPoco = readStoreItems["createPoco"] as PocoItem;
Assert.AreEqual(createPoco.Id, "1", "createPoco.id should be 1");
}
}
public class PocoItem
{
public string Id { get; set; }
public int Count { get; set; }
public string[] ExtraBytes { get; set; }
}
public class PocoStoreItem : IStoreItem
{
public string eTag { get; set; }
public string Id { get; set; }
public int Count { get; set; }
}
}
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Extensions.Tests
{
public class StorageBaseTests
{
protected async Task _readUnknownTest(IStorage storage)
{
var result = await storage.Read(new[] { "unknown" });
Assert.IsNotNull(result, "result should not be null");
Assert.IsNull(result.FirstOrDefault(e => e.Key == "unknown").Value, "\"unknown\" key should have returned no value");
}
protected async Task _createObjectTest(IStorage storage)
{
var storeItems = new Dictionary<string, object>
{
["createPoco"] = new PocoItem() { Id = "1" },
["createPocoStoreItem"] = new PocoStoreItem() { Id = "2" },
};
await storage.Write(storeItems);
var readStoreItems = new Dictionary<string, object>(await storage.Read(storeItems.Keys.ToArray()));
Assert.IsInstanceOfType(readStoreItems["createPoco"], typeof(PocoItem));
Assert.IsInstanceOfType(readStoreItems["createPocoStoreItem"], typeof(PocoStoreItem));
var createPoco = readStoreItems["createPoco"] as PocoItem;
Assert.IsNotNull(createPoco, "createPoco should not be null");
Assert.AreEqual(createPoco.Id, "1", "createPoco.id should be 1");
var createPocoStoreItem = readStoreItems["createPocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(createPocoStoreItem, "createPocoStoreItem should not be null");
Assert.AreEqual(createPocoStoreItem.Id, "2", "createPocoStoreItem.id should be 2");
Assert.IsNotNull(createPocoStoreItem.eTag, "createPocoStoreItem.eTag should not be null");
}
protected async Task _handleCrazyKeys(IStorage storage)
{
var key = "!@#$%^&*()~/\\><,.?';\"`~";
var storeItem = new PocoStoreItem() { Id = "1" };
var dict = new Dictionary<string, object>() { { key, storeItem } };
await storage.Write(dict);
var storeItems = await storage.Read(key);
storeItem = storeItems.FirstOrDefault(si => si.Key == key).Value as PocoStoreItem;
Assert.IsNotNull(storeItem);
Assert.AreEqual("1", storeItem.Id);
}
public class TypedObject
{
public string Name { get; set; }
}
protected async Task _updateObjectTest(IStorage storage)
{
var originalPocoItem = new PocoItem() { Id = "1", Count = 1 };
var originalPocoStoreItem = new PocoStoreItem() { Id = "1", Count = 1 };
// first write should work
var dict = new Dictionary<string, object>()
{
{ "pocoItem", originalPocoItem },
{ "pocoStoreItem", originalPocoStoreItem }
};
await storage.Write(dict);
var loadedStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var updatePocoItem = loadedStoreItems["pocoItem"] as PocoItem;
var updatePocoStoreItem = loadedStoreItems["pocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(updatePocoStoreItem.eTag, "updatePocoItem.eTag should not be null");
// 2nd write should work, because we have new etag, or no etag
updatePocoItem.Count++;
updatePocoStoreItem.Count++;
await storage.Write(loadedStoreItems);
var reloadedStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var reloeadedUpdatePocoItem = reloadedStoreItems["pocoItem"] as PocoItem;
var reloadedUpdatePocoStoreItem = reloadedStoreItems["pocoStoreItem"] as PocoStoreItem;
Assert.IsNotNull(reloadedUpdatePocoStoreItem.eTag, "updatePocoItem.eTag should not be null");
Assert.AreNotEqual(updatePocoStoreItem.eTag, reloadedUpdatePocoStoreItem.eTag, "updatePocoItem.eTag should not be different");
Assert.AreEqual(2, reloeadedUpdatePocoItem.Count, "updatePocoItem.Count should be 2");
Assert.AreEqual(2, reloadedUpdatePocoStoreItem.Count, "updatePocoStoreItem.Count should be 2");
// write with old etag should succeed for non-storeitem
try
{
updatePocoItem.Count = 123;
await storage.Write(
new Dictionary<string, object>() { { "pocoItem", updatePocoItem } }
);
}
catch
{
Assert.Fail("Should not throw exception on write with pocoItem");
}
// write with old etag should FAIL for storeitem
try
{
updatePocoStoreItem.Count = 123;
await storage.Write(
new Dictionary<string, object>() { { "pocoStoreItem", updatePocoStoreItem } }
);
Assert.Fail("Should have thrown exception on write with store item because of old etag");
}
catch
{
}
var reloadedStoreItems2 = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
var reloadedPocoItem2 = reloadedStoreItems2["pocoItem"] as PocoItem;
var reloadedPocoStoreItem2 = reloadedStoreItems2["pocoStoreItem"] as PocoStoreItem;
Assert.AreEqual(123, reloadedPocoItem2.Count);
Assert.AreEqual(2, reloadedPocoStoreItem2.Count);
// write with wildcard etag should work
reloadedPocoItem2.Count = 100;
reloadedPocoStoreItem2.Count = 100;
reloadedPocoStoreItem2.eTag = "*";
var wildcardEtagedict = new Dictionary<string, object>() {
{ "pocoItem", reloadedPocoItem2 },
{ "pocoStoreItem", reloadedPocoStoreItem2 }
};
await storage.Write(wildcardEtagedict);
var reloadedStoreItems3 = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
Assert.AreEqual(100, (reloadedStoreItems3["pocoItem"] as PocoItem).Count);
Assert.AreEqual(100, (reloadedStoreItems3["pocoStoreItem"] as PocoStoreItem).Count);
// write with empty etag should not work
try
{
var reloadedStoreItem4 = (await storage.Read("pocoStoreItem")).OfType<PocoStoreItem>().First();
reloadedStoreItem4.eTag = "";
var dict2 = new Dictionary<string, object>()
{
{ "pocoStoreItem", reloadedStoreItem4 }
};
await storage.Write(dict2);
Assert.Fail("Should have thrown exception on write with storeitem because of empty etag");
}
catch
{
}
var finalStoreItems = new Dictionary<string, object>(await storage.Read("pocoItem", "pocoStoreItem"));
Assert.AreEqual(100, (finalStoreItems["pocoItem"] as PocoItem).Count);
Assert.AreEqual(100, (finalStoreItems["pocoStoreItem"] as PocoStoreItem).Count);
}
protected async Task _deleteObjectTest(IStorage storage)
{
//first write should work
var dict = new Dictionary<string, object>()
{
{ "delete1", new PocoStoreItem() { Id = "1", Count = 1 } }
};
await storage.Write(dict);
var storeItems = await storage.Read("delete1");
var storeItem = storeItems.First().Value as PocoStoreItem;
Assert.IsNotNull(storeItem.eTag, "etag should be set");
Assert.AreEqual(1, storeItem.Count);
await storage.Delete("delete1");
var reloadedStoreItems = await storage.Read("delete1");
Assert.IsFalse(reloadedStoreItems.Any(), "no store item should have been found because it was deleted");
}
protected async Task _deleteUnknownObjectTest(IStorage storage)
{
await storage.Delete("unknown_key");
}
protected async Task _batchCreateObjectTest(IStorage storage, long minimumExtraBytes = 0)
{
string[] stringArray = null;
if (minimumExtraBytes > 0)
{
// chunks of maximum string size to fill the extra bytes request
var extraStringCount = (int)(minimumExtraBytes / int.MaxValue);
stringArray = Enumerable.Range(0, extraStringCount).Select(i => new string('X', int.MaxValue / 2)).ToArray();
// Append the remaining string size
stringArray = stringArray.Append(new string('X', (int)(minimumExtraBytes % int.MaxValue) / 2)).ToArray();
}
var storeItemsList = new List<Dictionary<string, object>>(new[]
{
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 0, ExtraBytes = stringArray }},
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 1, ExtraBytes = stringArray }},
new Dictionary<string, object> {["createPoco"] = new PocoItem() { Id = "1", Count = 2, ExtraBytes = stringArray }}
});
// Writing large objects in parallel might raise a Microsoft.Bot.Builder.Core.Extensions.StorageException
try
{
await Task.WhenAll(
storeItemsList.Select(storeItems =>
Task.Run(async () => await storage.Write(storeItems))));
}
catch (Exception ex)
{
Assert.IsInstanceOfType(ex, typeof(BotStorageException));
}
var readStoreItems = new Dictionary<string, object>(await storage.Read("createPoco"));
Assert.IsInstanceOfType(readStoreItems["createPoco"], typeof(PocoItem));
var createPoco = readStoreItems["createPoco"] as PocoItem;
Assert.AreEqual(createPoco.Id, "1", "createPoco.id should be 1");
}
}
public class PocoItem
{
public string Id { get; set; }
public int Count { get; set; }
public string[] ExtraBytes { get; set; }
}
public class PocoStoreItem : IStoreItem
{
public string eTag { get; set; }
public string Id { get; set; }
public int Count { get; set; }
}
}

Просмотреть файл

@ -8,7 +8,7 @@ using Microsoft.Bot.Builder.Adapters;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
[TestClass]
[TestCategory("Adapter")]

Просмотреть файл

@ -1,6 +1,6 @@
using Microsoft.Bot.Schema;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
public static class TestMessage
{

Просмотреть файл

@ -1,61 +1,61 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
namespace Microsoft.Bot.Builder.Core.Extensions.Tests
{
/// <summary>
/// Helpers to get activities from trancript files
/// </summary>
public static class TranscriptUtilities
{
/// <summary>
/// Loads a list of activities from a transcript file.
/// Use the context of the test to find the transcript file
/// </summary>
/// <param name="context">Test context</param>
/// <returns>A list of activities to test</returns>
public static IEnumerable<IActivity> GetFromTestContext(TestContext context)
{
var transcriptsRootFolder = TestUtilities.GetKey("TranscriptsRootFolder") ?? @"..\..\..\..\..\transcripts";
var directory = Path.Combine(transcriptsRootFolder, context.FullyQualifiedTestClassName.Split('.').Last());
var fileName = $"{context.TestName}.transcript";
var path = Path.Combine(directory, fileName);
if (!File.Exists(path))
{
Assert.Fail($"Required transcript file '{path}' does not exists in '{transcriptsRootFolder}' folder. Review the 'TranscriptsRootFolder' environment variable value.");
}
var content = File.ReadAllText(path);
return JsonConvert.DeserializeObject<Activity[]>(content);
}
/// <summary>
/// Get a conversation reference.
/// This method can be used to set the conversation reference needed to create a <see cref="Adapters.TestAdapter"/>
/// </summary>
/// <param name="activity"></param>
/// <returns>A valid conversation reference to the activity provides</returns>
public static ConversationReference GetConversationReference(this IActivity activity)
{
bool IsReply(IActivity act) => string.Equals("bot", act.From?.Role, StringComparison.InvariantCultureIgnoreCase);
var bot = IsReply(activity) ? activity.From : activity.Recipient;
var user = IsReply(activity) ? activity.Recipient : activity.From;
return new ConversationReference
{
User = user,
Bot = bot,
Conversation = activity.Conversation,
ChannelId = activity.ChannelId,
ServiceUrl = activity.ServiceUrl
};
}
}
}
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
namespace Microsoft.Bot.Builder.Core.Extensions.Tests
{
/// <summary>
/// Helpers to get activities from trancript files
/// </summary>
public static class TranscriptUtilities
{
/// <summary>
/// Loads a list of activities from a transcript file.
/// Use the context of the test to find the transcript file
/// </summary>
/// <param name="context">Test context</param>
/// <returns>A list of activities to test</returns>
public static IEnumerable<IActivity> GetFromTestContext(TestContext context)
{
var transcriptsRootFolder = TestUtilities.GetKey("TranscriptsRootFolder") ?? @"..\..\..\..\..\transcripts";
var directory = Path.Combine(transcriptsRootFolder, context.FullyQualifiedTestClassName.Split('.').Last());
var fileName = $"{context.TestName}.transcript";
var path = Path.Combine(directory, fileName);
if (!File.Exists(path))
{
Assert.Fail($"Required transcript file '{path}' does not exists in '{transcriptsRootFolder}' folder. Review the 'TranscriptsRootFolder' environment variable value.");
}
var content = File.ReadAllText(path);
return JsonConvert.DeserializeObject<Activity[]>(content);
}
/// <summary>
/// Get a conversation reference.
/// This method can be used to set the conversation reference needed to create a <see cref="Adapters.TestAdapter"/>
/// </summary>
/// <param name="activity"></param>
/// <returns>A valid conversation reference to the activity provides</returns>
public static ConversationReference GetConversationReference(this IActivity activity)
{
bool IsReply(IActivity act) => string.Equals("bot", act.From?.Role, StringComparison.InvariantCultureIgnoreCase);
var bot = IsReply(activity) ? activity.From : activity.Recipient;
var user = IsReply(activity) ? activity.Recipient : activity.From;
return new ConversationReference
{
User = user,
Bot = bot,
Conversation = activity.Conversation,
ChannelId = activity.ChannelId,
ServiceUrl = activity.ServiceUrl
};
}
}
}

Просмотреть файл

@ -5,7 +5,7 @@ using Microsoft.Bot.Builder.Adapters;
using Microsoft.Bot.Schema;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Microsoft.Bot.Builder.Core.Tests
namespace Microsoft.Bot.Builder.Tests
{
[TestClass]
[TestCategory("Middleware")]

Просмотреть файл

@ -22,7 +22,6 @@
<ItemGroup>
<ProjectReference Include="..\..\..\libraries\integration\Microsoft.Bot.Builder.Integration.AspNet.Core\Microsoft.Bot.Builder.Integration.AspNet.Core.csproj" />
<ProjectReference Include="..\..\..\libraries\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -105,10 +105,6 @@
<Project>{bd0b82ef-1601-4e87-b78a-b43de7eb36b0}</Project>
<Name>Microsoft.Bot.Builder.Integration.AspNet.WebApi</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\libraries\Microsoft.Bot.Builder.Core\Microsoft.Bot.Builder.Core.csproj">
<Project>{f0c150e2-9b8a-444c-b70e-97ad918cb3d4}</Project>
<Name>Microsoft.Bot.Builder.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\libraries\Microsoft.Bot.Connector\Microsoft.Bot.Connector.csproj">
<Project>{6462DA5D-27DC-4CD5-9467-5EFB998FD838}</Project>
<Name>Microsoft.Bot.Connector</Name>