﻿<Project Sdk="Microsoft.NET.Sdk">
<!--
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.Wake.Tests</AssemblyName>
    <TargetFrameworks>net46;net451</TargetFrameworks>
  </PropertyGroup>
  <Import Project="..\build.DotNet.props" />
  <ItemGroup>
    <PackageReference Include="System.Reactive.Core" Version="$(SystemReactiveVersion)" />
    <PackageReference Include="System.Reactive.Interfaces" Version="$(SystemReactiveVersion)" />
  </ItemGroup>
  <Import Project="..\xunit.DotNet.props" />
  <ItemGroup>
    <ProjectReference Include="..\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.DotNet.csproj" />
    <ProjectReference Include="..\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.DotNet.csproj" />
  </ItemGroup>
</Project>
