Esempio n. 1
0
        public void Handle_WhenTargetPathIsChanged_SetsBinOutputPath()
        {
            var context = IWorkspaceProjectContextMockFactory.Create();

            context.BinOutputPath = @"BinOutputPath";

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true,
        ""ChangedProperties"": [ ""TargetPath"" ]
    },
    ""After"": { 
        ""Properties"": {
            ""TargetPath"": ""NewBinOutputPath""
        }
    }
}");

            Handle(handler, projectChange);

            Assert.Equal("NewBinOutputPath", context.BinOutputPath);
        }
Esempio n. 2
0
        public void Handle_WhenPropertyIsChanged_CallsSetProperty()
        {
            string?nameResult  = null;
            string?valueResult = null;
            var    context     = IWorkspaceProjectContextMockFactory.ImplementSetProperty((name, value) => { nameResult = name; valueResult = value; });

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true,
        ""ChangedProperties"": [ ""RootNamespace"" ]
    },
    ""After"": { 
        ""Properties"": {
            ""RootNamespace"": ""value""
        }
    }
}");

            Handle(handler, projectChange);

            Assert.Equal("RootNamespace", nameResult);
            Assert.Equal("value", valueResult);
        }
Esempio n. 3
0
        public void Handle_WhenMSBuildProjectFullPathPropertyChanged_SetsProjectFilePath()
        {
            var context = IWorkspaceProjectContextMockFactory.Create();

            context.ProjectFilePath = @"ProjectFilePath";

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true,
        ""ChangedProperties"": [ ""MSBuildProjectFullPath"" ]
    },
    ""After"": { 
        ""Properties"": {
            ""MSBuildProjectFullPath"": ""NewProjectFilePath""
        }
    }
}");

            Handle(handler, projectChange);

            Assert.Equal(@"NewProjectFilePath", context.ProjectFilePath);
        }
        public void OnContextReleasedAsync_NullAsContext_ThrowsArgumentNull()
        {
            var handler = CreateInstance();
            var context = IProjectChangeDescriptionFactory.Create();

            Assert.Throws <ArgumentNullException>("context", () => {
                handler.OnContextReleasedAsync((IWorkspaceProjectContext)null);
            });
        }
        public void Handle_NullAsContext_ThrowsArgumentNull()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();

            Assert.Throws <ArgumentNullException>("context", () => {
                handler.Handle(projectChange, (IWorkspaceProjectContext)null, true);
            });
        }
        public void Handle_NullAsVersion_ThrowsArgumentNull()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();

            Assert.Throws <ArgumentNullException>("version", () => {
                handler.Handle((IComparable)null, projectChange, true);
            });
        }
        public void Handle_NullAsVersion_ThrowsArgumentNull()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();
            var logger        = Mock.Of <IProjectLogger>();

            Assert.Throws <ArgumentNullException>("version", () =>
            {
                handler.Handle(null !, projectChange, true, logger);
            });
Esempio n. 8
0
        public void Handle_NullAsLogger_ThrowsArgumentNull()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();

            Assert.Throws <ArgumentNullException>("logger", () =>
            {
                handler.Handle(10, projectChange, true, (IProjectLogger)null);
            });
        }
Esempio n. 9
0
        public void Handle_NullAsVersion_ThrowsArgumentNull()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();
            var logger        = Mock.Of <IProjectDiagnosticOutputService>();

            Assert.Throws <ArgumentNullException>("version", () =>
            {
                handler.Handle(null !, projectChange, new ContextState(), logger);
            });
Esempio n. 10
0
        public void Handle_WhenNotInitialized_ThrowsInvalidOperation()
        {
            var handler       = CreateInstance();
            var projectChange = IProjectChangeDescriptionFactory.Create();
            var logger        = Mock.Of <IProjectLogger>();

            Assert.Throws <InvalidOperationException>(() =>
            {
                handler.Handle(10, projectChange, true, logger);
            });
        }
Esempio n. 11
0
        public void Handle_WhenPropertyIsNotChanged_DoesNotCallSetProperty(string input)
        {
            int callCount = 0;
            var context   = IWorkspaceProjectContextMockFactory.ImplementSetProperty((name, value) => { callCount++; });

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(input);

            Handle(handler, projectChange);

            Assert.Equal(0, callCount);
        }
Esempio n. 12
0
        public void Handle_WhenMSBuildProjectFullPathPropertyNotChanged_DoesNothing()
        {
            var context = IWorkspaceProjectContextMockFactory.Create();

            context.ProjectFilePath = @"ProjectFilePath";
            context.DisplayName     = "DisplayName";

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true
    }
}");

            Handle(handler, projectChange);

            Assert.Equal(@"ProjectFilePath", context.ProjectFilePath);
            Assert.Equal(@"DisplayName", context.DisplayName);
        }
Esempio n. 13
0
        public void Handle_WhenMSBuildProjectFullPathPropertyChanged_SetsDisplayNameToFileNameWithoutExtension()
        {
            var context = IWorkspaceProjectContextMockFactory.Create();

            var handler = CreateInstance(context: context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true,
        ""ChangedProperties"": [ ""MSBuildProjectFullPath"" ]
    },
    ""After"": { 
        ""Properties"": {
            ""MSBuildProjectFullPath"": ""C:\\Project\\Project.csproj""
        }
    }
}");

            Handle(handler, projectChange);

            Assert.Equal(@"Project", context.DisplayName);
        }
Esempio n. 14
0
        public void Handle_WhenMSBuildProjectFullPathPropertyChangedAndMultitargeting_IncludeDimensionValuesInDisplayName(string dimensionNames, string dimensionValues, string implicitDimensionNames, string expected)
        {
            var context = IWorkspaceProjectContextMockFactory.Create();
            var implicitlyActiveDimensionProvider = IImplicitlyActiveDimensionProviderFactory.ImplementGetImplicitlyActiveDimensions(n => implicitDimensionNames.SplitReturningEmptyIfEmpty('|'));
            var configuration = ProjectConfigurationFactory.Create(dimensionNames, dimensionValues);
            var handler       = CreateInstance(configuration, implicitlyActiveDimensionProvider, context);

            var projectChange = IProjectChangeDescriptionFactory.FromJson(
                @"{
    ""Difference"": { 
        ""AnyChanges"": true,
        ""ChangedProperties"": [ ""MSBuildProjectFullPath"" ]
    },
    ""After"": { 
        ""Properties"": {
            ""MSBuildProjectFullPath"": ""C:\\Project\\Project.csproj""
        }
    }
}");

            Handle(handler, projectChange);

            Assert.Equal(expected, context.DisplayName);
        }