Skip to content

Commit 5bfc0e9

Browse files
authored
AB#43 Sonar medium issues. (#16)
1 parent 7574e25 commit 5bfc0e9

3 files changed

Lines changed: 20 additions & 3 deletions

File tree

LogicBuilder.ComponentModel.Design.Serialization.Tests/DesignerSerializationManagerTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -623,6 +623,22 @@ public void CreateInstance_ThrowsSerializationExceptionForMissingConstructor()
623623
}
624624
}
625625

626+
[Fact]
627+
public void CreateInstance_ThrowsSerializationExceptionForMissingConstructor_WithNullParameters()
628+
{
629+
// Arrange
630+
var manager = (IDesignerSerializationManager)new DesignerSerializationManager();
631+
632+
// Act & Assert
633+
using (((DesignerSerializationManager)manager).CreateSession())
634+
{
635+
var exception = Assert.Throws<System.Runtime.Serialization.SerializationException>(() =>
636+
manager.CreateInstance(typeof(TestClassWithConstructor), null, "test", false));
637+
638+
Assert.Contains("TestClassWithConstructor", exception.Message);
639+
}
640+
}
641+
626642
[Fact]
627643
public void CreateInstance_ConvertsParametersForConstructor()
628644
{

LogicBuilder.ComponentModel.Design.Serialization/DesignerSerializationManager.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -532,7 +532,7 @@ protected virtual object CreateInstance(Type type, ICollection arguments, string
532532
{
533533
StringBuilder stringBuilder = new();
534534
object[] array4 = array;
535-
for (int l = 0; l < array4.Length; l++)
535+
for (int l = 0; array4 != null && l < array4.Length; l++)
536536
{
537537
object obj2 = array4[l];
538538
if (stringBuilder.Length > 0)
@@ -630,7 +630,7 @@ public object GetSerializer(Type objectType, Type serializerType)
630630
Type runtimeType2 = this.GetRuntimeType(designerSerializerAttribute.SerializerTypeName);
631631
if (runtimeType2 != null)
632632
{
633-
obj = Activator.CreateInstance(runtimeType2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);
633+
obj = Activator.CreateInstance(runtimeType2, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);// NOSONAR
634634
break;
635635
}
636636
}
@@ -653,7 +653,7 @@ public object GetSerializer(Type objectType, Type serializerType)
653653
type = this.GetRuntimeType(defaultSerializationProviderAttribute.ProviderTypeName);
654654
if (type != null && typeof(IDesignerSerializationProvider).IsAssignableFrom(type))
655655
{
656-
IDesignerSerializationProvider designerSerializationProvider = (IDesignerSerializationProvider)Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);
656+
IDesignerSerializationProvider designerSerializationProvider = (IDesignerSerializationProvider)Activator.CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null);// NOSONAR
657657
((IDesignerSerializationManager)this).AddSerializationProvider(designerSerializationProvider);
658658
}
659659
}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
[![Build Status](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/ci.yml/badge.svg)](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/ci.yml)
44
[![CodeQL](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/actions/workflows/github-code-scanning/codeql)
55
[![codecov](https://codecov.io/gh/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization/graph/badge.svg?token=PFDB2PEVZT)](https://codecov.io/gh/BpsLogicBuilder/LogicBuilder.ComponentModel.Design.Serialization)
6+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=BpsLogicBuilder_LogicBuilder.ComponentModel.Design.Serialization&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=BpsLogicBuilder_LogicBuilder.ComponentModel.Design.Serialization)
67
[![NuGet](https://img.shields.io/nuget/v/LogicBuilder.ComponentModel.Design.Serialization.svg)](https://www.nuget.org/packages/LogicBuilder.ComponentModel.Design.Serialization)
78

89
## Serialization Management

0 commit comments

Comments
 (0)