//Complex constructor to be used in unit testing to allow mocking of componets
 protected BaseSiteSearchSurfaceController(ISiteSearchService siteSearchService, IUmbracoSpellChecker spellChecker,
                                           IUmbracoPhraseSuggester phraseSuggester, IPublishedContentCache contentCache, IInputSanitiser inputSanitiser)
 {
     _siteSearchService = siteSearchService;
     _spellChecker      = spellChecker;
     _phraseSuggester   = phraseSuggester;
     _contentCache      = contentCache;
     _inputSanitiser    = inputSanitiser;
 }
 public void SetUp()
 {
     _siteSearchService    = new Mock <ISiteSearchService>();
     _spellChecker         = new Mock <IUmbracoSpellChecker>();
     _phraseSuggester      = new Mock <IUmbracoPhraseSuggester>();
     _contentCache         = new Mock <IPublishedContentCache>();
     _inputSanitiser       = new InputSanitiser();         //I will use the real instance since there are no or complex functionality
     _mockedInputSanitiser = new Mock <IInputSanitiser>(); //used to verify call of method only
     _contextMocker        = new ContextMocker();
 }
 //Constructor for unit testing
 public UmbracoPhraseSuggester(ISiteSearchService siteSearchService, IUmbracoSpellChecker spellChecker, IInputSanitiser inputSanitiser)
 {
     _siteSearchService = siteSearchService;
     _spellChecker      = spellChecker;
     _inputSanitiser    = inputSanitiser;
 }
 public EnSiteSearchSurfaceController(ISiteSearchService siteSearchService, IUmbracoSpellChecker spellChecker, IUmbracoPhraseSuggester phraseSuggester,  IPublishedContentCache contentCache, IInputSanitiser inputSanitiser) : base(siteSearchService, spellChecker, phraseSuggester, contentCache, inputSanitiser)
 {
 }