public void SortsPackageReferencesInAlphabeticalOrder(TestPackage existingPackage, TestPackage testPackageToInstall)
        {
            // Arrange
            var sut     = new LeanSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(VisualStudioProjectScheme.Lean, TestVersion.Low, existingPackage, new Dictionary <string, string>
            {
                { $"{nameof(TestPackage)}.{testPackageToInstall}", "1.0.0" }
            });

            // Act
            var result = sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Equal(
                expected:
                @"<Project Sdk=""Microsoft.NET.Sdk"">

  <ItemGroup>
    <PackageReference Include=""TestPackage.One"" Version=""1.0.0"" />
    <PackageReference Include=""TestPackage.Two"" Version=""1.0.0"" />
  </ItemGroup>

</Project>",
                actual: result);
        }
Exemple #2
0
        public void Configure_SequencStorage_When_ObjectSpace_Commits(Type objectViewType)
        {
            Tracing.Close();
            var testObserver = new TestTracing().WhenException().Test();

            Tracing.Initialize();
            using (var application = NewApplication(Platform.Web)){
                SequenceGeneratorModule(nameof(Configure_SequencStorage_When_ObjectSpace_Commits), application);
                SetSequences(application);
                var modelClass      = application.Model.BOModel.GetClass(typeof(SequenceStorage));
                var viewId          = objectViewType == typeof(DetailView) ? modelClass.DefaultDetailView.Id : modelClass.DefaultListView.Id;
                var compositeView   = application.NewView(application.FindModelView(viewId));
                var sequenceStorage = compositeView.ObjectSpace.GetObjectsQuery <SequenceStorage>().First();
                sequenceStorage.Member = null;
                compositeView.ObjectSpace.CommitChanges();
                testObserver.Items.Count.ShouldBe(1);
                testObserver.Items.First().Message.ShouldContain("Cannot find the '' property within the ");
                compositeView.ObjectSpace.CommitChanges();
                testObserver.Items.Count.ShouldBe(2);
                testObserver.Items.Last().Message.ShouldContain("Cannot find the '' property within the ");
                sequenceStorage.Member = new ObjectMember()
                {
                    Name = nameof(TestObject.SequentialNumber)
                };
                compositeView.ObjectSpace.CommitChanges();
                testObserver.Items.Count.ShouldBe(2);
            }
        }
        public void UpgradesPackage()
        {
            // Arrange
            var sut     = new LeanSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(VisualStudioProjectScheme.Lean, TestVersion.Low, TestPackage.One, new Dictionary <string, string>
            {
                { "TestPackage.One", "3.0.0" }
            });

            // Act
            var result = sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Equal(
                expected:
                @"<Project Sdk=""Microsoft.NET.Sdk"">

  <ItemGroup>
    <PackageReference Include=""TestPackage.One"" Version=""3.0.0"" />
  </ItemGroup>

</Project>",
                actual: result);
        }
Exemple #4
0
        public void ConsolidateInstallsVersionsToHighestExisting()
        {
            // Arrange
            var tracing  = new TestTracing();
            var sut      = TestFixtureHelper.GetNuGetInstaller(true, false);
            var saved    = new List <(string path, string content)>();
            var project1 = TestFixtureHelper.CreateProject(VisualStudioProjectScheme.Lean, TestVersion.High, TestPackage.One, new Dictionary <string, string>());
            var project2 = TestFixtureHelper.CreateProject(VisualStudioProjectScheme.Lean, TestVersion.High, TestPackage.Two, new Dictionary <string, string>
            {
                { "TestPackage.One", "1.0.0" }
            });
            var projects = new[] { project1, project2 };

            // Act
            sut.Execute(projects, tracing, (path, content) => saved.Add((path, content)));

            // Assert
            Assert.Collection(saved, nuGetProject =>
            {
                Assert.Equal(project2.FilePath, nuGetProject.path);
                Assert.Equal(
                    XDocument.Parse(
                        @"<Project Sdk=""Microsoft.NET.Sdk"">

  <ItemGroup>
    <PackageReference Include=""TestPackage.One"" Version=""2.0.0"" />
    <PackageReference Include=""TestPackage.Two"" Version=""2.0.0"" />
  </ItemGroup>

</Project>", LoadOptions.PreserveWhitespace).ToString(),
                    nuGetProject.content);
            });
        }
        public void UpgradesPackage()
        {
            // Arrange
            var sut     = new VerboseWithPackageReferencesSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(VisualStudioProjectScheme.VerboseWithPackageReference, TestVersion.Low, TestPackage.One, nugetPackagesToInstall: new Dictionary <string, string>
            {
                { "TestPackage.One", "3.0.0" }
            });

            // Act
            var result = sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Equal(
                expected:
                @"<?xml version=""1.0"" encoding=""utf-8""?>
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
  <ItemGroup>
    <PackageReference Include=""TestPackage.One"">
      <Version>3.0.0</Version>
    </PackageReference>
  </ItemGroup>
</Project>",
                actual: result);
        }
Exemple #6
0
        public void SortsPackageReferencesInAlphabeticalOrder(TestPackage existingPackage, TestPackage testPackageToInstall)
        {
            // Arrange
            var sut     = new VerboseWithPackageReferencesSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(NuGetScheme.VerboseWithPackageReference, TestVersion.Low, existingPackage, new Dictionary <string, string>
            {
                { $"{nameof(TestPackage)}.{testPackageToInstall}", "1.0.0" }
            });

            // Act
            var result = sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Equal(
                expected:
                @"<?xml version=""1.0"" encoding=""utf-8""?>
<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
  <ItemGroup>
    <PackageReference Include=""TestPackage.One"">
      <Version>1.0.0</Version>
    </PackageReference>
    <PackageReference Include=""TestPackage.Two"">
      <Version>1.0.0</Version>
    </PackageReference>
  </ItemGroup>
</Project>",
                actual: result);
        }
Exemple #7
0
        public void Configure_SequenceStorage_When_ObjectSpace_Commits(Type objectViewType)
        {
            Tracing.Close();
            var testObserver = new TestTracing().WhenException().Test();

            Tracing.Initialize();
            using var application = NewApplication(handleExceptions: false);
            ((WinApplication)application).CustomHandleException += (_, args) => args.Handled = true;
            SequenceGeneratorModule(application);
            SetSequences(application);
            var modelClass      = application.Model.BOModel.GetClass(typeof(SequenceStorage));
            var viewId          = objectViewType == typeof(DetailView) ? modelClass.DefaultDetailView.Id : modelClass.DefaultListView.Id;
            var compositeView   = application.NewView(application.FindModelView(viewId));
            var sequenceStorage = compositeView.ObjectSpace.GetObjectsQuery <SequenceStorage>().First();

            sequenceStorage.Member = null;
            compositeView.ObjectSpace.CommitChanges();

            testObserver.Items.First().Message.ShouldContain("Cannot find the '' property within the ");
            compositeView.ObjectSpace.CommitChanges();
            // testObserver.Items.Count.ShouldBe(2);
            testObserver.Items.Last().Message.ShouldContain("Cannot find the '' property within the ");
            sequenceStorage.Member = new ObjectString(nameof(TestObject.SequentialNumber));
            compositeView.ObjectSpace.CommitChanges();
            // testObserver.Items.Count.ShouldBe(2);
        }
Exemple #8
0
        public void ConsolidatationNotTriggeredWhenVersionsAreTheSame()
        {
            // Arrange
            var tracing  = new TestTracing();
            var sut      = TestFixtureHelper.GetNuGetInstaller(true, false);
            var projects = new[]
            {
                TestFixtureHelper.CreateProject(VisualStudioProjectScheme.Lean, TestVersion.High, TestPackage.One, new Dictionary <string, string>()),
                TestFixtureHelper.CreateProject(VisualStudioProjectScheme.Lean, TestVersion.High, TestPackage.One, new Dictionary <string, string>()),
            };

            // Act
            sut.Execute(projects, tracing, (filePath, content) => { });

            // Assert
            Assert.Empty(tracing.InfoEntries);
        }
        public void UpgradePackageCreatesWarning()
        {
            // Arrange
            var sut     = new VerboseWithPackagesDotConfigSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(VisualStudioProjectScheme.VerboseWithPackagesDotConfig, TestVersion.Low, TestPackage.One, nugetPackagesToInstall: new Dictionary <string, string>
            {
                { "TestPackage.One", "3.0.0" }
            });

            // Act
            sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Collection(tracing.WarningEntries,
                              element => Assert.Contains(
                                  "https://blog.nuget.org/20180409/migrate-packages-config-to-package-reference.html",
                                  element));
        }
Exemple #10
0
        public void UpgradePackageCreatesWarning()
        {
            // Arrange
            var sut     = new UnsupportedSchemeProcessor();
            var tracing = new TestTracing();
            var project = TestFixtureHelper.CreateNuGetProject(VisualStudioProjectScheme.Unsupported, TestVersion.Low, TestPackage.One, nugetPackagesToInstall: new Dictionary <string, string>
            {
                { "TestPackage.One", "3.0.0" }
            });

            // Act
            sut.InstallPackages(
                project.Content,
                project.RequestedPackages,
                project.InstalledPackages,
                project.Name,
                tracing);

            // Assert
            Assert.Collection(tracing.DebugEntries,
                              element => Assert.Contains(
                                  "Skipped",
                                  element));
        }