Beispiel #1
0
 public UsingCookies(IAnalyzerConfiguration analyzerConfiguration)
 {
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
     ElementAccessTracker  = new CSharpElementAccessTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
 }
Beispiel #2
0
 public UsingCookies(IAnalyzerConfiguration analyzerConfiguration) : base(RspecStrings.ResourceManager)
 {
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, Rule);
     ElementAccessTracker  = new CSharpElementAccessTracker(analyzerConfiguration, Rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, Rule);
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, Rule);
 }
 internal /*for testing*/ ExecutingSqlQueries(IAnalyzerConfiguration analyzerConfiguration) : base(RspecStrings.ResourceManager)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, Rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, Rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, Rule);
     AssignmentFinder      = new CSharpAssignmentFinder();
 }
Beispiel #4
0
        public void ConstArgumentForParameter_CS()
        {
            var testInput = @"
namespace NS
{
  public class Base
  {
    private Base(string a, string b, bool c, int d, object e) {}

    private void Usage(string notAConst)
    {
      new Base(notAConst, ""myConst"", true, 4, new object());
    }
  }
}
";
            var context   = CreateContext <CSharpSyntax.ObjectCreationExpressionSyntax>(testInput, AnalyzerLanguage.CSharp);
            var tracker   = new CSharpObjectCreationTracker(null, null);

            tracker.ConstArgumentForParameter(context, "a").Should().BeNull();
            tracker.ConstArgumentForParameter(context, "b").Should().Be("myConst");
            tracker.ConstArgumentForParameter(context, "c").Should().Be(true);
            tracker.ConstArgumentForParameter(context, "d").Should().Be(4);
            tracker.ConstArgumentForParameter(context, "e").Should().BeNull();
            tracker.ConstArgumentForParameter(context, "nonExistingParameterName").Should().BeNull();
        }
 internal /*for testing*/ ControllingPermissions(IAnalyzerConfiguration analyzerConfiguration)
 {
     ObjectCreationTracker    = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     InvocationTracker        = new CSharpInvocationTracker(analyzerConfiguration, rule);
     PropertyAccessTracker    = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
     MethodDeclarationTracker = new CSharpMethodDeclarationTracker(analyzerConfiguration, rule);
     BaseTypeTracker          = new CSharpBaseTypeTracker(analyzerConfiguration, rule);
 }
        public void AndCondition()
        {
            var tracker = new CSharpObjectCreationTracker();

            CSharpObjectCreationTracker.Condition trueCondition  = x => true;
            CSharpObjectCreationTracker.Condition falseCondition = x => false;

            tracker.And(trueCondition, trueCondition)(null).Should().BeTrue();
            tracker.And(trueCondition, falseCondition)(null).Should().BeFalse();
            tracker.And(falseCondition, trueCondition)(null).Should().BeFalse();
            tracker.And(falseCondition, falseCondition)(null).Should().BeFalse();
        }
        public void ObjectCreationConditionForUndefinedSymbol()
        {
            const string testInput = @"
public class Base
{
    private void Usage(string notAConst)
    {
      new Undefined(true);
    }
}";
            var          context   = CreateContext <CSharpSyntax.ObjectCreationExpressionSyntax>(testInput, AnalyzerLanguage.CSharp);
            var          tracker   = new CSharpObjectCreationTracker();

            tracker.ArgumentAtIndexIs(0, KnownType.System_Boolean)(context).Should().BeFalse();
            tracker.WhenDerivesFrom(KnownType.System_Exception)(context).Should().BeFalse();
            tracker.WhenImplements(KnownType.System_IDisposable)(context).Should().BeFalse();
            tracker.WhenDerivesOrImplementsAny(KnownType.System_Boolean)(context).Should().BeFalse();
            tracker.MatchConstructor(KnownType.System_Boolean)(context).Should().BeFalse();
        }
        public void ObjectCreationConditionForNonconstructorSymbols()
        {
            const string testInput = @"
using System;

public class Base : Exception, IDisposable
{
    private void Method(bool b) { }
    public void Dispose() { }

    public void Usage()
    {
        Method(true);
    }
}";
            var          context   = CreateContext <CSharpSyntax.InvocationExpressionSyntax>(testInput, AnalyzerLanguage.CSharp); // Created with wrong syntax
            var          tracker   = new CSharpObjectCreationTracker();

            tracker.ArgumentAtIndexIs(0, KnownType.System_Boolean)(context).Should().BeTrue();  // Doesn't care about symbol type
            tracker.WhenDerivesFrom(KnownType.System_Exception)(context).Should().BeFalse();
            tracker.WhenImplements(KnownType.System_IDisposable)(context).Should().BeFalse();
            tracker.WhenDerivesOrImplementsAny(KnownType.System_Exception)(context).Should().BeFalse();
            tracker.MatchConstructor(KnownType.System_Boolean)(context).Should().BeFalse();
        }
 internal CookieShouldBeHttpOnly(IAnalyzerConfiguration analyzerConfiguration)
     : base(analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }
Beispiel #10
0
 internal /*for testing*/ SocketsCreation(IAnalyzerConfiguration analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }
 internal CreatingHashAlgorithms(IAnalyzerConfiguration analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
 }
 public EncryptionAlgorithmsShouldBeSecure() : base(RspecStrings.ResourceManager)
 {
     InvocationTracker     = new CSharpInvocationTracker(AnalyzerConfiguration.AlwaysEnabled, Rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(AnalyzerConfiguration.AlwaysEnabled, Rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(AnalyzerConfiguration.AlwaysEnabled, Rule);
 }
 internal /*for testing*/ ExecutingSqlQueries(IAnalyzerConfiguration analyzerConfiguration)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }
 internal /*for testing*/ DoNotHardcodeCredentials(IAnalyzerConfiguration analyzerConfiguration) : base(RspecStrings.ResourceManager, analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, Rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, Rule);
 }
Beispiel #15
0
 internal CommandPath(IAnalyzerConfiguration configuration) : base(RspecStrings.ResourceManager)
 {
     InvocationTracker     = new CSharpInvocationTracker(configuration, Rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(configuration, Rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(configuration, Rule);
 }
 internal /*for testing*/ CreatingHashAlgorithms(IAnalyzerConfiguration analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
     BaseTypeTracker       = new CSharpBaseTypeTracker(analyzerConfiguration, rule);
 }
 public UsingRegularExpressions(IAnalyzerConfiguration analyzerConfiguration) : base(RspecStrings.ResourceManager)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, Rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, Rule);
 }
 internal /*for testing*/ SendingHttpRequests(IAnalyzerConfiguration analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
 }
Beispiel #19
0
 public UsingRegularExpressions(IAnalyzerConfiguration analyzerConfiguration)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }
Beispiel #20
0
 public ConfiguringLoggers(IAnalyzerConfiguration analyzerConfiguration)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
 }
Beispiel #21
0
 public EncryptionAlgorithmsShouldBeSecure()
 {
     InvocationTracker     = new CSharpInvocationTracker(AnalyzerConfiguration.AlwaysEnabled, rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(AnalyzerConfiguration.AlwaysEnabled, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(AnalyzerConfiguration.AlwaysEnabled, rule);
 }
 internal /*for testing*/ DoNotHardcodeCredentials(IAnalyzerConfiguration analyzerConfiguration)
     : base(analyzerConfiguration)
 {
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
 }
Beispiel #23
0
 internal /*for testing*/ HandlingFiles(IAnalyzerConfiguration analyzerConfiguration)
 {
     InvocationTracker     = new CSharpInvocationTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }
 /*for testing*/
 internal ExecutingOsCommands(IAnalyzerConfiguration analyzerConfiguration)
 {
     InvocationTracker = new CSharpInvocationTracker(analyzerConfiguration, rule);
     PropertyAccessTracker = new CSharpPropertyAccessTracker(analyzerConfiguration, rule);
     ObjectCreationTracker = new CSharpObjectCreationTracker(analyzerConfiguration, rule);
 }