﻿<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<Project Sdk="Microsoft.NET.Sdk">

  <Import Project="../../../common.props" />
  <Import Project="../../../versions.props" />

  <PropertyGroup>
    <TargetFrameworks>$(DefaultUnitTestTargetFrameworks)</TargetFrameworks>
    <RootNamespace>Avro.ipc.test</RootNamespace>
    <AssemblyName>Avro.ipc.test</AssemblyName>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Include="..\..\..\..\..\share\test\schemas\mail.avpr">
      <Link>mail.avpr</Link>
    </EmbeddedResource>
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="NUnit" Version="$(NUnitVersion)" />
    <PackageReference Include="NUnit3TestAdapter" Version="$(NUnit3TestAdapterVersion)" />
    <PackageReference Include="NUnit.ConsoleRunner" Version="$(NUnitConsoleRunnerVersion)" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkVersion)" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\ipc\Avro.ipc.csproj" />
    <ProjectReference Include="..\main\Avro.main.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
  </ItemGroup>

</Project>
