public virtual void before_each() { autoSubstitute = new AutoSubstitute(); var testBinaryNotifier = autoSubstitute.Resolve <ITestBinaryNotifier>(); testDllPathStream = new Subject <IEnumerable <string> >(); testBinaryNotifier.PathStream.Returns(testDllPathStream); containerFactory = autoSubstitute.Resolve <ITestContainerFactory>(); containerDiscoverer = new NSpecTestContainerDiscoverer(testBinaryNotifier, containerFactory); }
void Initialize( ITestBinaryNotifier testBinaryNotifier, ITestContainerFactory containerFactory) { this.containerFactory = containerFactory; testBinaryNotifier.PathStream.Subscribe(_ => { RaiseTestContainersUpdated(); }) .DisposeWith(disposables); var noDllPaths = new string[0]; var hotContainerStream = testBinaryNotifier.PathStream .StartWith(noDllPaths) .Select(MapToContainers) .Replay(1); // "remember" last observation when TestContainers is requested for the first time hotContainerStream.Connect().DisposeWith(disposables); containerStream = hotContainerStream; }
// Unit tests need a constructor with injected dependencies public NSpecTestContainerDiscoverer( ITestBinaryNotifier testBinaryNotifier, ITestContainerFactory containerFactory) { Initialize(testBinaryNotifier, containerFactory); }