public async Task GetInstallActionsAsync_WhenProjectNotFound_Throws() { Initialize(); await PerformOperationAsync(async (projectManager) => { string[] projectIds = new[] { "a" }; var packageIdentity = new PackageIdentity(id: "b", NuGetVersion.Parse("1.0.0")); string[] packageSourceNames = new[] { TestSourceRepositoryUtility.V3PackageSource.Name }; LocalRpcException exception = await Assert.ThrowsAsync <LocalRpcException>( () => projectManager.GetInstallActionsAsync( projectIds, packageIdentity, VersionConstraints.None, includePrelease: true, DependencyBehavior.Lowest, packageSourceNames, CancellationToken.None).AsTask()); string expectedMessage = $"A project with ID '{projectIds.Single()}' was not found.\r\nParameter name: projectIds"; Assert.StartsWith(expectedMessage, exception.Message); Assert.Equal((int)RemoteErrorCode.RemoteError, exception.ErrorCode); Assert.IsType <RemoteError>(exception.ErrorData); var remoteError = (RemoteError)exception.ErrorData; string expectedProjectContextLogMessage = exception.InnerException.ToString(); Assert.Null(remoteError.ActivityLogMessage); Assert.Equal(NuGetLogCode.Undefined, remoteError.LogMessage.Code); Assert.Equal(LogLevel.Error, remoteError.LogMessage.Level); Assert.Equal(expectedMessage, remoteError.LogMessage.Message); Assert.Null(remoteError.LogMessage.ProjectPath); Assert.InRange(remoteError.LogMessage.Time, DateTimeOffset.UtcNow.AddSeconds(-10), DateTimeOffset.UtcNow.AddSeconds(1)); Assert.Equal(WarningLevel.Severe, remoteError.LogMessage.WarningLevel); Assert.Null(remoteError.LogMessages); Assert.Equal(expectedProjectContextLogMessage, remoteError.ProjectContextLogMessage); Assert.Equal(typeof(ArgumentException).FullName, remoteError.TypeName); }); }