public void Execute(GeneratorExecutionContext context)
    {
        var currentAssemblyName   = context.Compilation.Assembly.Name;
        var namespaceName         = NameBuilder.GetNamespace(currentAssemblyName);
        var modelBuilderGenerator = new ModelBuilderExtensionGenerator();
        var mvcExtension          = modelBuilderGenerator.CreateModelBuilder($"{namespaceName}.TypeRepository.Instance");

        context.AddSource("LaDeakJsonMergePatchModelBuilderExtension", SourceText.From(mvcExtension, Encoding.UTF8));
    }
        public void GetNamespace_Returns_Namespace_SafeExtension()
        {
            var typeSymbol = Substitute.For <ITypeSymbol>();

            typeSymbol.ContainingNamespace.ToDisplayString().Returns("Test.Namespace");
            var result = NameBuilder.GetNamespace(typeSymbol);

            Assert.Equal("LaDeak.JsonMergePatch.Generated.SafeTest.Namespace", result);
        }
        public void GetNamespaceOnString_Returns_Namespace_SafeExtension()
        {
            var result = NameBuilder.GetNamespace("Test.Namespace");

            Assert.Equal("LaDeak.JsonMergePatch.Generated.SafeTest.Namespace", result);
        }