Skip to content

Commit f0a5492

Browse files
committed
♻️ tests: Enable nullable, fix various warnings
1 parent 4b8eb32 commit f0a5492

26 files changed

+172
-169
lines changed

UnitsNet.Serialization.JsonNet.Tests/Infrastructure/TestObjectWithValueAndUnitAsIComparable.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public sealed class TestObjectWithValueAndUnitAsIComparable : IComparable
1212

1313
public int CompareTo(object obj)
1414
{
15-
return ((IComparable)Value).CompareTo(obj);
15+
return Value.CompareTo(obj);
1616
}
1717
}
1818
}

UnitsNet.Serialization.JsonNet.Tests/Infrastructure/TestObjectWithValueAsIComparable.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

44
using System;
5+
using System.Diagnostics.CodeAnalysis;
56

67
namespace UnitsNet.Serialization.JsonNet.Tests.Infrastructure
78
{
@@ -11,7 +12,7 @@ public sealed class TestObjectWithValueAsIComparable : IComparable
1112

1213
public int CompareTo(object obj)
1314
{
14-
return ((IComparable)Value).CompareTo(obj);
15+
return Value.CompareTo(obj);
1516
}
1617

1718
// Needed for verifying that the deserialized object is the same, should not affect the serialization code
@@ -24,6 +25,7 @@ public override bool Equals(object obj)
2425
return Value.Equals(((TestObjectWithValueAsIComparable)obj).Value);
2526
}
2627

28+
[SuppressMessage("ReSharper", "NonReadonlyMemberInGetHashCode")]
2729
public override int GetHashCode()
2830
{
2931
return Value.GetHashCode();

UnitsNet.Serialization.JsonNet.Tests/UnitsNetBaseJsonConverterTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,6 @@ public IQuantity Test_ConvertDecimalValueUnit(string unit, decimal value) => Tes
242242
Unit = unit, Value = (double) value, ValueString = value.ToString(CultureInfo.InvariantCulture), ValueType = "decimal"
243243
});
244244

245-
public IQuantity Test_ConvertValueUnit() => Test_ConvertValueUnit(null);
246245
private IQuantity Test_ConvertValueUnit(ValueUnit valueUnit) => ConvertValueUnit(valueUnit);
247246

248247
public JsonSerializer Test_CreateLocalSerializer(JsonSerializer serializer) => CreateLocalSerializer(serializer, this);

UnitsNet.Serialization.JsonNet.Tests/UnitsNetIComparableJsonConverterTest.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Diagnostics.CodeAnalysis;
67
using System.IO;
78
using Newtonsoft.Json;
89
using UnitsNet.Serialization.JsonNet.Tests.Infrastructure;
@@ -26,6 +27,7 @@ public void UnitsNetIComparableJsonConverter_CanWrite_returns_false()
2627
}
2728

2829
[Fact]
30+
[SuppressMessage("ReSharper", "AssignNullToNotNullAttribute")]
2931
public void UnitsNetIComparableJsonConverter_WriteJson_throws_NotImplementedException()
3032
{
3133
Assert.Throws<NotImplementedException>(() => _sut.WriteJson(null, null, null));

UnitsNet.Tests/AssemblyAttributeTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,8 @@ public static void AssemblyCopyrightShouldContain2013()
2727
var copyrightAttribute = assembly
2828
.CustomAttributes
2929
.Single(x => x.AttributeType == typeof(AssemblyCopyrightAttribute));
30-
string copyrightString = copyrightAttribute.ConstructorArguments.Single().Value.ToString();
31-
string expectedYear = "2013";
32-
Assert.Contains(expectedYear, copyrightString);
30+
var copyrightString = copyrightAttribute.ConstructorArguments.Single().Value!.ToString()!;
31+
Assert.Contains("2013", copyrightString);
3332
}
3433
}
3534
}

UnitsNet.Tests/BaseDimensionsTests.cs

Lines changed: 50 additions & 50 deletions
Large diffs are not rendered by default.

UnitsNet.Tests/BaseUnitsTests.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ public void EqualsObjectIsImplementedCorrectly()
3939
Assert.True(SIBaseUnits.Equals((object)SIBaseUnitsCopy));
4040
Assert.False(SIBaseUnits.Equals((object)NonSiBaseUnits));
4141

42+
// ReSharper disable once SuspiciousTypeConversion.Global
4243
Assert.False(SIBaseUnits.Equals("Some object."));
43-
Assert.False(SIBaseUnits.Equals(((IFormatProvider)null)!));
44+
Assert.False(SIBaseUnits.Equals((IFormatProvider?)null));
4445
}
4546

4647
[Fact]
@@ -67,8 +68,8 @@ public void EqualityOperatorIsImplementedCorrectly()
6768
Assert.False(SIBaseUnits == null);
6869
Assert.False(null == SIBaseUnits);
6970

70-
BaseUnits nullBaseUnits1 = null;
71-
BaseUnits nullBaseUnits2 = null;
71+
BaseUnits? nullBaseUnits1 = null;
72+
BaseUnits? nullBaseUnits2 = null;
7273

7374
Assert.True(nullBaseUnits1 == nullBaseUnits2);
7475
}
@@ -82,11 +83,11 @@ public void InequalityOperatorIsImplementedCorrectly()
8283
Assert.True(SIBaseUnits != NonSiBaseUnits);
8384
Assert.True(NonSiBaseUnits != SIBaseUnits);
8485

85-
Assert.True(SIBaseUnits != null);
86-
Assert.True(null != SIBaseUnits);
86+
Assert.True(SIBaseUnits != null!);
87+
Assert.True(null! != SIBaseUnits!);
8788

88-
BaseUnits nullBaseUnits1 = null;
89-
BaseUnits nullBaseUnits2 = null;
89+
BaseUnits? nullBaseUnits1 = null;
90+
BaseUnits? nullBaseUnits2 = null;
9091

9192
Assert.False(nullBaseUnits1 != nullBaseUnits2);
9293
}

UnitsNet.Tests/CustomQuantities/HowMuch.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace UnitsNet.Tests.CustomQuantities
66
/// <summary>
77
/// Example of a custom/third-party quantity implementation, for plugging in quantities and units at runtime.
88
/// </summary>
9-
public struct HowMuch : IQuantity
9+
public readonly struct HowMuch : IQuantity
1010
{
1111
public HowMuch(double value, HowMuchUnit unit)
1212
{
@@ -48,15 +48,11 @@ public IQuantity ToUnit(Enum unit)
4848
throw new ArgumentException("Must be of type HowMuchUnit.", nameof(unit));
4949
}
5050

51-
public IQuantity ToUnit(Enum unit, UnitConverter unitConverter) => throw new NotImplementedException();
52-
5351
public IQuantity ToUnit(UnitSystem unitSystem) => throw new NotImplementedException();
5452

5553
public override string ToString() => $"{Value} {Unit}";
56-
public string ToString(string format, IFormatProvider formatProvider) => $"HowMuch ({format}, {formatProvider})";
57-
public string ToString(IFormatProvider provider) => $"HowMuch ({provider})";
58-
public string ToString(IFormatProvider provider, int significantDigitsAfterRadix) => $"HowMuch ({provider}, {significantDigitsAfterRadix})";
59-
public string ToString(IFormatProvider provider, string format, params object[] args) => $"HowMuch ({provider}, {string.Join(", ", args)})";
54+
public string ToString(string? format, IFormatProvider? formatProvider) => $"HowMuch ({format}, {formatProvider})";
55+
public string ToString(IFormatProvider? provider) => $"HowMuch ({provider})";
6056

6157
#endregion
6258
}

UnitsNet.Tests/GeneratedQuantityCodeTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,13 +121,13 @@ private static bool HasDivisionOperator(Type t, Type operandType)
121121
return operation != null && operation.IsSpecialName;
122122
}
123123

124-
private static Type GetMultiplicationResult(Type t, Type operandType)
124+
private static Type? GetMultiplicationResult(Type t, Type operandType)
125125
{
126126
var operation = t.GetMethod("op_Multiply", new[] { t, operandType });
127127
return operation != null && operation.IsSpecialName ? operation.ReturnType : null;
128128
}
129129

130-
private static Type GetDivisionResult(Type t, Type operandType)
130+
private static Type? GetDivisionResult(Type t, Type operandType)
131131
{
132132
var operation = t.GetMethod("op_Division", new[] { t, operandType });
133133
return operation != null && operation.IsSpecialName ? operation.ReturnType : null;

UnitsNet.Tests/Helpers/TypeDescriptorContext.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public override bool CanResetValue(object component)
2929
throw new NotImplementedException();
3030
}
3131

32-
public override object GetValue(object component)
32+
public override object GetValue(object? component)
3333
{
3434
throw new NotImplementedException();
3535
}
@@ -39,7 +39,7 @@ public override void ResetValue(object component)
3939
throw new NotImplementedException();
4040
}
4141

42-
public override void SetValue(object component, object value)
42+
public override void SetValue(object? component, object? value)
4343
{
4444
throw new NotImplementedException();
4545
}
@@ -63,7 +63,7 @@ public TypeDescriptorContext()
6363

6464
public object Instance => throw new NotImplementedException();
6565

66-
public PropertyDescriptor PropertyDescriptor { get; set; }
66+
public PropertyDescriptor PropertyDescriptor { get; set; } = null!;
6767

6868
public object GetService(Type serviceType)
6969
{

0 commit comments

Comments
 (0)