﻿<Project>
  <!--
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

http://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.
-->
  <PropertyGroup>
    <AssemblyName>Org.Apache.REEF.Client.Tests</AssemblyName>
    <Description>REEF Client Tests</Description>
    <PackageTags>REEF Client</PackageTags>
  </PropertyGroup>
  <Import Project="..\build.DotNetTest.props" />
  <ItemGroup>
    <PackageReference Include="Newtonsoft.Json" Version="$(NewtonsoftJsonVersion)" />
    <PackageReference Include="NSubstitute" Version="$(NSubstituteVersion)" />
  </ItemGroup>
  <!-- TODO[JIRA REEF-1888] This item group will not be needed when only .netcore is targeted. -->
  <ItemGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
    <PackageReference Include="System.ServiceProcess.ServiceController" Version="4.4.0" />
  </ItemGroup>
  <!-- TODO: REEF-1888 Remove ItemGroup when removing net451 and net46 targets -->
  <ItemGroup Condition="'$(TargetFramework)' == 'net452' Or '$(TargetFramework)' == 'net46'">
    <Reference Include="System" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.ServiceProcess" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Org.Apache.REEF.Client\Org.Apache.REEF.Client.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.IO\Org.Apache.REEF.IO.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
  </ItemGroup>
  <Import Project="..\build.DotNetTest.targets" />
</Project>
