﻿<?xml version="1.0" encoding="utf-8"?>
<!--
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.
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ProjectGuid>{0B596FAC-53B0-435A-ACE5-6725309E414A}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Org.Apache.REEF.Evaluator.Tests</RootNamespace>
    <AssemblyName>Org.Apache.REEF.Evaluator.Tests</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..</SolutionDir>
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
    <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
    <IsCodedUITest>False</IsCodedUITest>
    <TestProjectType>UnitTest</TestProjectType>
  </PropertyGroup>
  <Import Project="$(SolutionDir)\build.props" />
  <Import Project="$(SolutionDir)\xunit.targets" />
  <PropertyGroup>
    <RestorePackages>true</RestorePackages>
    <BuildPackage>false</BuildPackage>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="NSubstitute, Version=$(NSubstituteVersion), Culture=neutral, PublicKeyToken=92dd2e9066daa5ca, processorArchitecture=MSIL">
      <HintPath>$(PackagesDir)\NSubstitute.$(NSubstituteVersion)\lib\net45\NSubstitute.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="protobuf-net, Version=$(ProtobufVersion), Culture=neutral, PublicKeyToken=257b51d87d2e4d67, processorArchitecture=MSIL">
      <HintPath>$(PackagesDir)\protobuf-net.$(ProtobufVersion)\lib\net40\protobuf-net.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="System" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="ContextRuntimeTests.cs" />
    <Compile Include="EvaluatorConfigurationsTests.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="EvaluatorServiceTests.cs" />
    <Compile Include="TaskRuntimeTests.cs" />
    <Compile Include="TestUtils\ITestService.cs" />
    <Compile Include="TestUtils\SimpleTestTask.cs" />
    <Compile Include="TestUtils\TestService.cs" />
    <Compile Include="TestUtils\TestTask.cs" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Common\Org.Apache.REEF.Common.csproj">
      <Project>{545a0582-4105-44ce-b99c-b1379514a630}</Project>
      <Name>Org.Apache.REEF.Common</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples\Org.Apache.REEF.Examples.csproj">
      <Project>{75503f90-7b82-4762-9997-94b5c68f15db}</Project>
      <Name>Org.Apache.REEF.Examples</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Tang\Org.Apache.REEF.Tang.csproj">
      <Project>{97dbb573-3994-417a-9f69-ffa25f00d2a6}</Project>
      <Name>Org.Apache.REEF.Tang</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Utilities\Org.Apache.REEF.Utilities.csproj">
      <Project>{79e7f89a-1dfb-45e1-8d43-d71a954aeb98}</Project>
      <Name>Org.Apache.REEF.Utilities</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Driver\Org.Apache.REEF.Driver.csproj">
      <Project>{a6baa2a7-f52f-4329-884e-1bcf711d6805}</Project>
      <Name>Org.Apache.REEF.Driver</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Examples.HelloREEF\Org.Apache.REEF.Examples.HelloREEF.csproj">
      <Project>{0ff8cee9-b0b6-4a14-9a52-44441be048fe}</Project>
      <Name>Org.Apache.REEF.Examples.HelloREEF</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Network\Org.Apache.REEF.Network.csproj">
      <Project>{883ce800-6a6a-4e0a-b7fe-c054f4f2c1dc}</Project>
      <Name>Org.Apache.REEF.Network</Name>
    </ProjectReference>
    <ProjectReference Include="$(SolutionDir)\Org.Apache.REEF.Wake\Org.Apache.REEF.Wake.csproj">
      <Project>{cdfb3464-4041-42b1-9271-83af24cd5008}</Project>
      <Name>Org.Apache.REEF.Wake</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <None Include="..\App.config">
      <Link>App.config</Link>
    </None>
    <None Include="packages.config" />
  </ItemGroup>
  <Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
  <Import Project="$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets" Condition="Exists('$(PackagesDir)\StyleCop.MSBuild.$(StyleCopVersion)\build\StyleCop.MSBuild.Targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(NuGetError)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>
</Project>