<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <AssemblyName>Stratis.Bitcoin.Features.SmartContracts.Tests</AssemblyName>
    <PackageId>Stratis.Bitcoin.Features.SmartContracts.Tests</PackageId>
    <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
    <RuntimeFrameworkVersion>2.1.1</RuntimeFrameworkVersion>
    <GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
    <GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
    <GenerateAssemblyCopyrightAttribute>false</GenerateAssemblyCopyrightAttribute>
    <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
    <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
	<CodeAnalysisRuleSet>..\None.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.8.0" />
    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Mono.Cecil" Version="0.10.1" />
    <PackageReference Include="NetJSON" Version="1.2.2" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\Stratis.Bitcoin.Features.SmartContracts\Stratis.Bitcoin.Features.SmartContracts.csproj" />
    <ProjectReference Include="..\Stratis.Bitcoin.Tests.Common\Stratis.Bitcoin.Tests.Common.csproj" />
    <ProjectReference Include="..\Stratis.Bitcoin.Tests.Wallet.Common\Stratis.Bitcoin.Tests.Wallet.Common.csproj" />
    <ProjectReference Include="..\Stratis.SmartContracts.CLR.Validation\Stratis.SmartContracts.CLR.Validation.csproj" />
    <ProjectReference Include="..\Stratis.SmartContracts.Core\Stratis.SmartContracts.Core.csproj" />
    <ProjectReference Include="..\Stratis.SmartContracts.CLR\Stratis.SmartContracts.CLR.csproj" />
    <ProjectReference Include="..\Stratis.SmartContracts.Networks\Stratis.SmartContracts.Networks.csproj" />
    <ProjectReference Include="..\Stratis.SmartContracts\Stratis.SmartContracts.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Compile Update="Loader\Test.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ArrayInitialization.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ByteArrayConversion.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\CallInfiniteLoopContract.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ClearStorage.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ContractConstructorInvalid.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ContractCreation.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ContractMethodParameterTypeMismatch.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ContractInvalidParameterCount.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\Demo.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\InfiniteLoop.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\Inheritance.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\InvalidImplicitAssembly.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\InvalidParam.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\MemoryLimit.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\MultipleConstructor.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\MultipleFiles1.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\MultipleFiles2.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>	
    <Compile Update="SmartContracts\OutOfGasTest.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\Auction.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\PerState.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\SingleConstructor.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\StorageTest.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\StorageTestWithParameters.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ThrowExceptionContract.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\ContractFailsValidation.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\Token.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\TryCatch.cs">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\Recursion.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\NestedLoop.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
    <Compile Update="SmartContracts\MultipleIfElseBlocks.cs">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <None Update="Packages\1.0.0-TEST\Stratis.SmartContracts.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="Packages\4.0.0-TEST\Stratis.SmartContracts.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="Packages\netcoreapp2.1\System.Runtime.dll">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
    <None Update="xunit.runner.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>

</Project>
