title: How would I refactor out a static method so I can test my method?
body: <p>I know I can't use Moq to mock out a static method call inside my method under test, so what would I need to do to refactor the method so I can test it? I also have a method calling the base class method, would I need to refactor that and if so how? I don't want to use MS.Fakes or TypeMocks and create a shim, I would rather refactor and write solid code!</p>
  
  <pre><code>    public override DateTime ResolveDate(ISeries comparisonSeries, DateTime targetDate)
      {
          if (comparisonSeries == null)
          {
              throw new ArgumentNullException("comparisonSeries");
          }
  
          switch (comparisonSeries.Key)
          {
              case SeriesKey.R1:
              case SeriesKey.R2:
              case SeriesKey.R3:
              case SeriesKey.R4:
              case SeriesKey.R5:
                  return DateHelper.PreviousOrCurrentQuarterEnd(targetDate);
          }
  
          return base.ResolveDate(comparisonSeries, targetDate);
      }
  
      [TestMethod]
      public void SomeTestMethod()
      {
          var mockIAppCache = new Mock&lt;IAppCache&gt;();
          var mockISeries = new Mock&lt;ISeries&gt;();
  
          ReportFR2 report = new ReportFR2(SeriesKey.FR2, mockIAppCache);
          DateTime resolvedDate = report.ResolveDate(mockISeries, DateTime.Now);
  
          //Assert.AreEqual("something", "something");
  
      }
  </code></pre>