Beispiel #1
0
    private void WithChangedDependency_ReturnsTrue_Base <TConfigType, TUpdateResolverFactory>(IDependencyMetadataWriter metadataWriter, TConfigType configOld, TConfigType configNew) where TUpdateResolverFactory : IUpdateResolverFactory, new()
    {
        // Assert that Equals is properly implemented.
        Assert.Equal(configNew, configNew.DeepClone());

        // Arrange
        var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone();

        Singleton <TUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, configOld);

        var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone();

        // Act
        metadataWriter.Update(clonedOriginal.Config, new[] { clonedDependency.Config });

        Singleton <TUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, configNew);

        bool shouldUpdateFile = metadataWriter.Update(clonedOriginal.Config, new[] { clonedDependency.Config });

        // Assert
        Assert.True(shouldUpdateFile);
        Assert.NotEqual(configOld, configNew);
    }
Beispiel #2
0
    private void WithNoDependencies_RemovesPluginData_Base <TConfigType, TUpdateResolverFactory>(IDependencyMetadataWriter metadataWriter, TConfigType config, string pluginId) where TUpdateResolverFactory : IUpdateResolverFactory, new()
    {
        // Arrange
        var clonedDependency = _testEnvironmoent.TestModConfigBTuple.DeepClone();

        Singleton <TUpdateResolverFactory> .Instance.SetConfiguration(clonedDependency, config);

        var clonedOriginal = _testEnvironmoent.TestModConfigATuple.DeepClone();

        // Act
        metadataWriter.Update(clonedOriginal.Config, new[] { clonedDependency.Config });
        Singleton <TUpdateResolverFactory> .Instance.RemoveConfiguration(clonedDependency); // Remove update info from dependency

        metadataWriter.Update(clonedOriginal.Config, new[] { clonedDependency.Config });    // Since dependency has no updates, should be removed from here too

        // Assert
        Assert.False(clonedOriginal.Config.PluginData.ContainsKey(pluginId));
    }