public void Setup()
        {
            m_Lines = CreateLines();

            m_Manager = Substitute.For <ILinesSourceManager>();
            m_Manager.Lines.Returns(m_Lines);

            m_Logger = Substitute.For <ISelkieLogger>();
            m_Bus = Substitute.For <ISelkieInMemoryBus>();
            m_Manager = Substitute.For <ILinesSourceManager>();
            m_Factory = Substitute.For <IDisplayLineFactory>();

            m_Model = new LinesModel(m_Logger,
                                     m_Bus,
                                     m_Manager,
                                     m_Factory);
        }
        public void DisposeCallsReleaseDisplayLinesTest()
        {
            m_Manager.Lines.Returns(m_Lines);

            var model = new LinesModel(m_Logger,
                                       m_Bus,
                                       m_Manager,
                                       m_Factory);

            model.Dispose();

            int count = m_Lines.Count();

            m_Factory.Received(count).Release(Arg.Any <IDisplayLine>());
        }
        public void ConstructorLoadsLinesTest()
        {
            m_Manager.Lines.Returns(m_Lines);

            var model = new LinesModel(m_Logger,
                                       m_Bus,
                                       m_Manager,
                                       m_Factory);

            Assert.AreEqual(m_Lines.Count(),
                            model.Lines.Count());

            model.Dispose();
        }