public void TestSaveDocuments()
        {
            var repo = new XmlSessionRepository();
              var uow = repo.GetUnitOfWork();
              var session1 = new SessionBuilder().StartDefault("session1").Build();
              var doc1 = new SessionDocumentBuilder().StartDefault("doc1").Build();
              session1.AddDocument(doc1);
              var doc2 = new SessionDocumentBuilder().StartDefault("doc2").Build();
              session1.AddDocument(doc2);
              uow.RegisterSavedOrUpdated(session1);
              uow.Commit();

              repo = new XmlSessionRepository();
              var sessionsInRepo = repo.GetAllSessions();
              Assert.AreEqual(1, sessionsInRepo.Count());
              Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1)));
              Assert.AreEqual(2, sessionsInRepo.First().GetDocuments().Count());

              repo = new XmlSessionRepository();
              uow = repo.GetUnitOfWork();
              session1.RemoveDocument(doc1);
              uow.RegisterSavedOrUpdated(session1);
              uow.Commit();

              repo = new XmlSessionRepository();
              sessionsInRepo = repo.GetAllSessions();
              Assert.AreEqual(1, sessionsInRepo.Count());
              Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1)));
              Assert.AreEqual(1, sessionsInRepo.First().GetDocuments().Count());
        }
Example #2
0
        public void TestIsDirty()
        {
            var session = new SessionBuilder().StartDefault().Build();
              var document = new SessionDocumentBuilder().StartDefault().Build();
              session.AddDocument(document);
              session.IsDirty = false;

              session.RemoveDocument(document);

              Assert.IsTrue(session.IsDirty);
        }
Example #3
0
        public void TestEquals()
        {
            var d1 = new SessionDocumentBuilder().StartDefault("path", DocumentType.Designer).Build();
              var d2 = new SessionDocumentBuilder().StartDefault("path", DocumentType.Text).Build();
              var d3 = new SessionDocumentBuilder().StartDefault("path2", DocumentType.Text).Build();
              var d4 = new SessionDocumentBuilder().StartDefault("path", DocumentType.Text).Build();

              Assert.AreNotEqual(d1, d2);
              Assert.AreNotEqual(d1, d3);
              Assert.AreNotEqual(d2, d3);
              Assert.AreNotEqual(d3, d4);
              Assert.AreEqual(d2, d4);
        }
Example #4
0
        public void TestAddDocumentsToRecentlyClosedList_ElementsToAddExceedsCapacity()
        {
            var recentlyClosedDocs = new List<SessionDocument>();
              var document1 = new SessionDocumentBuilder().StartDefault("A").Build();
              recentlyClosedDocs.Add(document1);

              var elementsToAdd = new List<SessionDocument>();
              addDocumentsToList(AddinController.INT_RecentlyClosedDocsCapacity + 1, elementsToAdd);

              AddinController.AddDocumentsToRecentlyClosedList(recentlyClosedDocs, elementsToAdd);

              Assert.AreEqual(AddinController.INT_RecentlyClosedDocsCapacity + 1, recentlyClosedDocs.Count);
              Assert.IsFalse(recentlyClosedDocs.Contains(document1));
        }
Example #5
0
        public void TestRemoveAllDocuments()
        {
            var session = new SessionBuilder().StartDefault().Build();
              session.IsDirty = false;

              session.RemoveAllDocuments();
              Assert.IsFalse(session.IsDirty);

              var document = new SessionDocumentBuilder().StartDefault().Build();
              session.AddDocument(document);
              session.IsDirty = false;

              session.RemoveAllDocuments();

              Assert.AreEqual(0, session.GetDocuments().Count());
              Assert.IsTrue(session.IsDirty);
        }
Example #6
0
        public void TestAddDocumentsToRecentlyClosedList_CapacityNotExeeded()
        {
            var recentlyClosedDocs = new List<SessionDocument>();
              var document1 = new SessionDocumentBuilder().StartDefault("A").Build();
              recentlyClosedDocs.Add(document1);

              var elementsToAdd = new List<SessionDocument>();
              var document2 = new SessionDocumentBuilder().StartDefault("A").Build();
              elementsToAdd.Add(document2);
              var document3 = new SessionDocumentBuilder().StartDefault("B").Build();
              elementsToAdd.Add(document3);

              AddinController.AddDocumentsToRecentlyClosedList(recentlyClosedDocs, elementsToAdd);

              Assert.AreEqual(2, recentlyClosedDocs.Count);
              Assert.Contains(document2, recentlyClosedDocs);
              Assert.Contains(document3, recentlyClosedDocs);
        }
Example #7
0
        public void TestSimpleAddRemoveDocument()
        {
            var session = new SessionBuilder().StartDefault().Build();
              session.AddDocument(new SessionDocumentBuilder().StartDefault("path1").Build());
              session.AddDocument(new SessionDocumentBuilder().StartDefault("path2").Build());

              var document = new SessionDocumentBuilder().StartDefault("path3").Build();
              session.AddDocument(document);
              session.RemoveDocument(document);

              Assert.AreEqual(2, session.GetDocuments().Count());
        }
Example #8
0
        public void TestLoadDocumentsFromSession_NonExistentDocument()
        {
            const string NON_EXISTENT_DOCUMENT = "NON_EXISTENT_DOCUMENT";

              var sessionWithDocumentsToLoad = new SessionBuilder().StartDefault().Build();

              var nonExistentDocument = new SessionDocumentBuilder().StartDefault(NON_EXISTENT_DOCUMENT).Build();
              sessionWithDocumentsToLoad.AddDocument(nonExistentDocument);

              var dteAdapterMock = new Mock<IDteAdapter>();
              dteAdapterMock.Setup(da => da.GetWindowsForValidDocuments()).Returns(new List<IDteWindowAdapter>());

              dteAdapterMock.Setup(da => da.FileExists(It.IsAny<string>())).Returns(false);

              var viewAdapterMock = new Mock<IViewAdapter>();

              var sessionManagerMock = new Mock<ISessionManager>();
              sessionManagerMock.Setup(sm => sm.CurrentSession).Returns((Session)null);

              var controller = new AddinController(sessionManagerMock.Object, null, viewAdapterMock.Object,
            dteAdapterMock.Object, null);
              controller.LoadDocumentsFromSession(sessionWithDocumentsToLoad);

              dteAdapterMock.Verify(da => da.OpenFile(It.IsAny<string>(), It.IsAny<DocumentType>()), Times.Never());
              dteAdapterMock.Verify(da => da.FileExists(It.IsAny<string>()), Times.Once());
              viewAdapterMock.Verify(va => va.ShowLongMessage(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once());
        }
Example #9
0
        public void TestLoadDocumentsFromSession()
        {
            const string DOCUMENT_IN_SESSION_AND_IN_THE_IDE = "d1";
              const string DOCUMENT_IN_SESSION = "d2";
              const string DOCUMENT_IN_THE_IDE = "d3";

              var sessionWithDocumentsToLoad = new SessionBuilder().StartDefault().Build();

              var documentInSessionAndInTheIDE = new SessionDocumentBuilder().StartDefault(DOCUMENT_IN_SESSION_AND_IN_THE_IDE).Build();
              sessionWithDocumentsToLoad.AddDocument(documentInSessionAndInTheIDE);

              var documentInSession = new SessionDocumentBuilder().StartDefault(DOCUMENT_IN_SESSION).Build();
              sessionWithDocumentsToLoad.AddDocument(documentInSession);

              var dteWindowAdapterMock1 = new Mock<IDteWindowAdapter>();
              dteWindowAdapterMock1.Setup(dwa => dwa.FullPath).Returns(DOCUMENT_IN_SESSION_AND_IN_THE_IDE);
              dteWindowAdapterMock1.Setup(dwa => dwa.DocumentMatches(documentInSessionAndInTheIDE)).Returns(true);

              var dteWindowAdapterMock2 = new Mock<IDteWindowAdapter>();
              dteWindowAdapterMock2.Setup(dwa => dwa.FullPath).Returns(DOCUMENT_IN_THE_IDE);
              dteWindowAdapterMock2.Setup(dwa => dwa.DocumentMatches(It.IsAny<SessionDocument>())).Returns(false);
              dteWindowAdapterMock2.Setup(dwa => dwa.Close(It.Is<SaveChanges>(x => x == SaveChanges.Prompt))).Returns(true);

              var dteAdapterMock = new Mock<IDteAdapter>();
              dteAdapterMock.Setup(da => da.GetWindowsForValidDocuments()).Returns(new List<IDteWindowAdapter>()
              {
            dteWindowAdapterMock1.Object,
            dteWindowAdapterMock2.Object,
              });

              dteAdapterMock.Setup(da => da.FileExists(It.IsAny<string>())).Returns(true);

              var viewAdapterMock = new Mock<IViewAdapter>();

              var sessionManagerMock = new Mock<ISessionManager>();
              sessionManagerMock.Setup(sm => sm.CurrentSession).Returns((Session)null);

              var controller = new AddinController(sessionManagerMock.Object, null, viewAdapterMock.Object,
            dteAdapterMock.Object, null);
              controller.LoadDocumentsFromSession(sessionWithDocumentsToLoad);

              dteAdapterMock.Verify(da => da.OpenFile(It.IsAny<string>(), It.IsAny<DocumentType>()), Times.Once());
        }