From c6eb0fa59a5592090049e691c2a2099984759fed Mon Sep 17 00:00:00 2001 From: Troy Dai Date: Sun, 3 Apr 2016 20:52:36 -0700 Subject: [PATCH] Add test cover adding MSBuild reference scenario --- .../DthTests.cs | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/test/dotnet-projectmodel-server.Tests/DthTests.cs b/test/dotnet-projectmodel-server.Tests/DthTests.cs index 878bf8acd..56969c2e9 100644 --- a/test/dotnet-projectmodel-server.Tests/DthTests.cs +++ b/test/dotnet-projectmodel-server.Tests/DthTests.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Threading; @@ -413,6 +414,39 @@ namespace Microsoft.DotNet.ProjectModel.Server.Tests } } + [Fact] + public void AddMSBuildReferenceBeforeRestore() + { + var tam = new TestAssetsManager( + Path.Combine(RepoRoot, "TestAssets", "ProjectModelServer", "MSBuildReferencesProjects")); + + // var appName = "EmptyNetCoreApp"; + var projectPath = tam.CreateTestInstance("ValidCase01").WithLockFiles().TestRoot; + projectPath = Path.Combine(projectPath, "src", "MainApp"); + + var projectFilePath = Path.Combine(projectPath, Project.FileName); + var projectJson = JsonConvert.DeserializeObject(File.ReadAllText(projectFilePath)); + + ((JObject)projectJson["frameworks"]["net46"]["dependencies"]) + .Add("ClassLibrary4", JToken.FromObject(new { target = "project" })); + + File.WriteAllText(projectFilePath, JsonConvert.SerializeObject(projectJson)); + + using (var server = new DthTestServer(_loggerFactory)) + using (var client = new DthTestClient(server, _loggerFactory)) + { + client.Initialize(projectPath); + var messages = client.DrainAllMessages(); + messages.AssertDoesNotContain(MessageTypes.Error); + messages.RetrieveSingleMessage(MessageTypes.Dependencies) + .RetrieveDependency("ClassLibrary4") + .AssertProperty( + "Version", + v => !string.IsNullOrEmpty(v.ToString()), + v => "Version string shouldn't be empty."); + } + } + [Fact] public void MSBuildReferenceTest() {