public void GetMappings_NotMutable()
        {
            // Arrange
            var store = new DefaultProjectConfigurationFilePathStore();

            // Act
            var mappings = store.GetMappings();

            store.Set(@"C:\project.csproj", @"C:\project\obj\project.razor.json");

            // Assert
            Assert.Empty(mappings);
        }
Exemple #2
0
        public void Remove_UntrackedProject_DoesNotInvokeChanged()
        {
            // Arrange
            var store  = new DefaultProjectConfigurationFilePathStore();
            var called = false;

            store.Changed += (sender, args) => called = true;

            // Act
            store.Remove("C:/project.csproj");

            // Assert
            Assert.False(called);
        }
Exemple #3
0
        public void Remove_RemovesGettability()
        {
            // Arrange
            var store           = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath = "C:/project.csproj";

            store.Set(projectFilePath, "C:/project/obj/project.razor.json");

            // Act
            store.Remove(projectFilePath);
            var result = store.TryGet(projectFilePath, out _);

            // Assert
            Assert.False(result);
        }
Exemple #4
0
        public void Set_AllowsTryGet()
        {
            // Arrange
            var store           = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath = "C:/project.csproj";
            var expectedConfigurationFilePath = "C:/project/obj/project.razor.json";

            store.Set(projectFilePath, expectedConfigurationFilePath);

            // Act
            var result = store.TryGet(projectFilePath, out var configurationFilePath);

            // Assert
            Assert.True(result);
            Assert.Equal(expectedConfigurationFilePath, configurationFilePath);
        }
Exemple #5
0
        public void Set_OverridesPrevious()
        {
            // Arrange
            var store           = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath = "C:/project.csproj";
            var expectedConfigurationFilePath = "C:/project/obj/project.razor.json";

            // Act
            store.Set(projectFilePath, "C:/other/obj/project.razor.json");
            store.Set(projectFilePath, expectedConfigurationFilePath);

            // Assert
            var result = store.TryGet(projectFilePath, out var configurationFilePath);

            Assert.True(result);
            Assert.Equal(expectedConfigurationFilePath, configurationFilePath);
        }
Exemple #6
0
        public void Set_SameConfigurationFilePath_DoesNotInvokeChanged()
        {
            // Arrange
            var store                 = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath       = "C:/project.csproj";
            var configurationFilePath = "C:/project/obj/project.razor.json";

            store.Set(projectFilePath, configurationFilePath);
            var called = false;

            store.Changed += (sender, args) => called = true;

            // Act
            store.Set(projectFilePath, configurationFilePath);

            // Assert
            Assert.False(called);
        }
Exemple #7
0
        public void Set_InvokesChanged()
        {
            // Arrange
            var store                 = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath       = "C:/project.csproj";
            var configurationFilePath = "C:/project/obj/project.razor.json";
            var called                = false;

            store.Changed += (sender, args) =>
            {
                called = true;
                Assert.Equal(projectFilePath, args.ProjectFilePath);
                Assert.Equal(configurationFilePath, args.ConfigurationFilePath);
            };

            // Act
            store.Set(projectFilePath, configurationFilePath);

            // Assert
            Assert.True(called);
        }
Exemple #8
0
        public void GetMappings_ReturnsAllSetMappings()
        {
            // Arrange
            var store            = new DefaultProjectConfigurationFilePathStore();
            var expectedMappings = new Dictionary <string, string>()
            {
                ["C:/project1.csproj"] = "C:/project1/obj/project.razor.json",
                ["C:/project2.csproj"] = "C:/project2/obj/project.razor.json"
            };

            foreach (var mapping in expectedMappings)
            {
                store.Set(mapping.Key, mapping.Value);
            }

            // Act
            var mappings = store.GetMappings();

            // Assert
            Assert.Equal(expectedMappings, mappings);
        }
        public void Set_ResolvesRelativePaths()
        {
            // Arrange
            var store                 = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath       = @"C:\project.csproj";
            var configurationFilePath = @"C:\project\subpath\..\obj\project.razor.json";
            var called                = false;

            store.Changed += (sender, args) =>
            {
                called = true;
                Assert.Equal(projectFilePath, args.ProjectFilePath);
                Assert.Equal(@"C:\project\obj\project.razor.json", args.ConfigurationFilePath);
            };

            // Act
            store.Set(projectFilePath, configurationFilePath);

            // Assert
            Assert.True(called);
        }
        public void Remove_InvokesChanged()
        {
            // Arrange
            var store           = new DefaultProjectConfigurationFilePathStore();
            var projectFilePath = @"C:\project.csproj";

            store.Set(projectFilePath, @"C:\project\obj\project.razor.json");
            var called = false;

            store.Changed += (sender, args) =>
            {
                called = true;
                Assert.Equal(projectFilePath, args.ProjectFilePath);
                Assert.Null(args.ConfigurationFilePath);
            };

            // Act
            store.Remove(projectFilePath);

            // Assert
            Assert.True(called);
        }