Static Code analysis Repo for FunFair Server dotnet projects.
Branch | Status |
---|---|
main | |
release |
Code | Meaning |
---|---|
FFS0001 | Avoid using DateTime.Now - Use IDateTimeSource.UtcNow()
|
FFS0002 | Avoid using DateTime.UtcNow - Use IDateTimeSource.UtcNow()
|
FFS0003 | Avoid using DateTime.Today - Use IDateTimeSource.UtcNow().Date
|
FFS0004 | Avoid using DateTimeOffset.Now - Use IDateTimeSource.UtcNow()
|
FFS0005 | Avoid using DateTimeOffset.UtcNow - Use IDateTimeSource.UtcNow()
|
FFS0006 | Avoid using arbitrary SQL for updates |
FFS0007 | Avoid using arbitrary SQL for queries |
FFS0008 | Do not disable warnings |
FFS0009 | Do not use Assert.True without specifying a message |
FFS0010 | Do not use Assert.False without specifying a message |
FFS0011 | Make structs readonly
|
FFS0012 | Classes should be static , sealed or abstract
|
FFS0013 | Test Classes should be sealed or abstract and derived from TestBase
|
FFS0014 | Do not use JsonSerialiser without specifying JsonOptions
|
FFS0015 | Do not use JsonDeserialiser without specifying JsonOptions
|
FFS0016 | Pass parameter name to ArgumentExceptions
|
FFS0017 | Pass inner exception to exceptions thrown in catch block |
FFS0018 | Don't use NSubstitute's Received() without specifying the number of calls |
FFS0019 |
ILogger parameters should be called logger |
FFS0020 | Parameters should be in a specified order |
FFS0021 | Don't use NSubstitute's Received(0) - use DidNotReceive() instead |
FFS0022 | Don't configure nullable in code - should be a project level. |
FFS0023 | Logger parameters on base classes should be ILogger not ILogger<ClassName>
|
FFS0024 | Logger parameters on leaf classes should be ILogger<ClassName> not ILogger
|
FFS0025 | Mismatch of generic type |
FFS0026 | Do not read IPAddress from Connection - use an abstraction |
FFS0027 |
SuppressMessage must specify a justification |
FFS0028 | Records should be sealed
|
FFS0029 | Classes derived from MockBase<T> should be internal
|
FFS0030 | Classes derived from MockBase<T> should be sealed
|
FFS0031 | Avoid using System.Collections.Concurrent.ConcurrentDictionary<,> - Use NonBlocking.ConcurrentDictionary<,>
|
FFS0032 | Avoid using NonBlocing.ConcurrentDictionary<,>.AddOrUpdate - Use FunFair.Common.Extensions.ConcurrentDictionaryExtensions.AddOrUpdate
|
FFS0033 | Avoid using NonBlocing.ConcurrentDictionary<,>.GetOrAdd - Use FunFair.Common.Extensions.ConcurrentDictionaryExtensions.GetOrAdd
|
FFS0034 | Avoid using Microsoft.Extensions.Configuration.ConfigurationBuilder.AddJsonFile with reload set to true |
FFS0035 | Checks that test classes do not define mutable fields |
FFS0036 | Checks that test classes do not define mutable properties |
FFS0037 | Checks that Guid.Parse is not used and that new Guid or Guid.TryParse is used instead |
FFS0038 | Records should have DebuggerDisplay attribute on them. |
FFS0039 | Only one type name should be defined per file. Note class T and class T<T1> are considered to be one type as they share the same name. |
FFS0040 | Type should be in a file with the same name as the type. |
FFS0041 | Do not use System.Console in test assemblies. |
FFS0042 | Do not have TODO's in SuppressMessage justifications. |
FFS0043 | Do not use StringComparer.InvariantCulture use StringComparer.Ordinal instead. |
FFS0044 | Do not use StringComparer.InvariantCultureIgnoreCase use StringComparer.OrdinalIgnoreCase instead. |
FFS0045 | Do not use StringCompaison.InvariantCulture use StringCompaison.Ordinal instead. |
FFS0046 | Do not use StringCompaison.InvariantCultureIgnoreCase use StringCompaison.OrdinalIgnoreCase instead. |
FFS0047 | Do not use StringCompaison.CurrentCulture use StringCompaison.Ordinal instead. |
FFS0048 | Do not use StringCompaison.CurrentCultureIgnoreCase use StringCompaison.OrdinalIgnoreCase instead. |
View changelog