예제 #1
0
 protected override void Initialize()
 {
     AddItemCommand.Initialize(this);
     AddPackageReferenceCommand.Initialize(this);
     BuildCurrentModelCommand.Initialize(this);
     ExtendElementsCommand.Initialize(this);
     NewFolder1.Command1.Initialize(this);
     base.Initialize();
 }
예제 #2
0
        public void AddPkg_ArgParsing(string packageOption, string package, string versionOption, string version, string dgFileOption,
                                      string dgFilePath, string projectOption, string project, string frameworkOption, string frameworkString, string sourceOption,
                                      string sourceString, string packageDirectoryOption, string packageDirectory, string noRestoreSwitch)
        {
            // Arrange
            var projectPath = Path.Combine(Path.GetTempPath(), project);

            File.Create(projectPath).Dispose();

            var argList = new List <string>()
            {
                "add",
                packageOption,
                package,
                versionOption,
                version,
                dgFileOption,
                dgFilePath,
                projectOption,
                projectPath
            };

            if (!string.IsNullOrEmpty(frameworkOption))
            {
                argList.Add(frameworkOption);
                argList.Add(frameworkString);
            }
            if (!string.IsNullOrEmpty(sourceOption))
            {
                argList.Add(sourceOption);
                argList.Add(sourceString);
            }
            if (!string.IsNullOrEmpty(packageDirectoryOption))
            {
                argList.Add(packageDirectoryOption);
                argList.Add(packageDirectory);
            }
            if (!string.IsNullOrEmpty(noRestoreSwitch))
            {
                argList.Add(noRestoreSwitch);
            }

            var logger            = new TestCommandOutputLogger();
            var testApp           = new CommandLineApplication();
            var mockCommandRunner = new Mock <IPackageReferenceCommandRunner>();

            mockCommandRunner
            .Setup(m => m.ExecuteCommand(It.IsAny <PackageReferenceArgs>(), It.IsAny <MSBuildAPIUtility>()))
            .ReturnsAsync(0);

            testApp.Name = "dotnet nuget_test";
            AddPackageReferenceCommand.Register(testApp,
                                                () => logger,
                                                () => mockCommandRunner.Object);

            // Act
            var result = testApp.Execute(argList.ToArray());

            XPlatTestUtils.DisposeTemporaryFile(projectPath);

            // Assert
            mockCommandRunner.Verify(m => m.ExecuteCommand(It.Is <PackageReferenceArgs>(p => p.PackageDependency.Id == package &&
                                                                                        p.PackageDependency.VersionRange.OriginalString == version &&
                                                                                        p.ProjectPath == projectPath &&
                                                                                        p.DgFilePath == dgFilePath &&
                                                                                        p.NoRestore == !string.IsNullOrEmpty(noRestoreSwitch) &&
                                                                                        (string.IsNullOrEmpty(frameworkOption) || !string.IsNullOrEmpty(frameworkOption) && p.Frameworks.SequenceEqual(MSBuildStringUtility.Split(frameworkString))) &&
                                                                                        (string.IsNullOrEmpty(sourceOption) || !string.IsNullOrEmpty(sourceOption) && p.Sources.SequenceEqual(MSBuildStringUtility.Split(sourceString))) &&
                                                                                        (string.IsNullOrEmpty(packageDirectoryOption) || !string.IsNullOrEmpty(packageDirectoryOption) && p.PackageDirectory == packageDirectory)),
                                                           It.IsAny <MSBuildAPIUtility>()));

            Assert.Equal(0, result);
        }