public void ChangeSetAlreadyExists()
        {
            IEventManager mgr = new EventManager();
            var svc = new TestChangeSetWriterService();
            svc.StubCentral.Services.BeforeSave += Services_BeforeSave;
            svc.Initialize(ConfigNoLink, mgr, null);
            mgr.Subscribe(typeof(LogMessage), LogMessageListener);
            IList<string> references = new List<string>();
            references.Add("S-1000");
            mgr.Publish(new ChangeSetInfo("Author", "Message", new List<string>(), "5", referenceDate, references));

            IAttributeDefinition changesetreferencedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Reference");
            IAttributeDefinition changesetprimaryworkitemsdef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.PrimaryWorkitems");
            IAttributeDefinition changesetnamedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Name");
            IAttributeDefinition changesetdescriptionref = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Description");

            Assert.AreEqual(1, _lastsaved.Count);

            Asset beforesave = _lastsaved[0].Assets[0];

            Assert.AreEqual(GetReferenceChangeSetNameDef(), beforesave.GetAttribute(changesetnamedef).Value);
            Assert.AreEqual("Message", beforesave.GetAttribute(changesetdescriptionref).Value);
            Assert.AreEqual("5", beforesave.GetAttribute(changesetreferencedef).Value);
            Assert.AreEqual(svc.StubCentral.Services.GetOid("Story:1004"), beforesave.GetAttribute(changesetprimaryworkitemsdef).ValuesList[0]);

            //Assert.AreEqual(1,_logmessages.Count);
            Assert.AreEqual("Using existing Change Set: 5 (ChangeSet:1003:105)", _logmessages[0].Message);
        }
        public void SaveChangeSetWithLink()
        {
            IEventManager mgr = new EventManager();
            var svc = new TestChangeSetWriterService();
            svc.StubCentral.Services.BeforeSave += Services_BeforeSave;
            svc.Initialize(ConfigWithLink, mgr, null);
            mgr.Subscribe(typeof(LogMessage), LogMessageListener);
            IList<string> references = new List<string>();
            references.Add("S-1000");
            mgr.Publish(new ChangeSetInfo("Author", "Message", new List<string>(), "8", referenceDate, references));

            Assert.AreEqual(2, _lastsaved.Count);

            Asset savedchangeset = _lastsaved[0].Assets[0];

            IAttributeDefinition changesetreferencedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Reference");
            IAttributeDefinition changesetprimaryworkitemsdef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.PrimaryWorkitems");
            IAttributeDefinition changesetnamedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Name");
            IAttributeDefinition changesetdescriptionref = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Description");

            Assert.AreEqual(GetReferenceChangeSetNameDef(), savedchangeset.GetAttribute(changesetnamedef).Value);
            Assert.AreEqual("Message", savedchangeset.GetAttribute(changesetdescriptionref).Value);
            Assert.AreEqual("8", savedchangeset.GetAttribute(changesetreferencedef).Value);
            Assert.AreEqual(svc.StubCentral.Services.GetOid("Story:1004"), savedchangeset.GetAttribute(changesetprimaryworkitemsdef).ValuesList[0]);

            Asset savedlink = _lastsaved[1].Assets[0];

            IAttributeDefinition linknamedef = svc.StubCentral.MetaModel.GetAttributeDefinition("Link.Name");
            IAttributeDefinition linkurldef = svc.StubCentral.MetaModel.GetAttributeDefinition("Link.URL");
            IAttributeDefinition linkonmenudef = svc.StubCentral.MetaModel.GetAttributeDefinition("Link.OnMenu");

            Assert.AreEqual("ChangeSet: 8", savedlink.GetAttribute(linknamedef).Value);
            Assert.AreEqual("http://server/8", savedlink.GetAttribute(linkurldef).Value);
            Assert.AreEqual(true, savedlink.GetAttribute(linkonmenudef).Value);
        }
        public void ChangeSetNoReferences_AlwasyCreate()
        {
            IEventManager mgr = new EventManager();
            var svc = new TestChangeSetWriterService();
            svc.StubCentral.Services.BeforeSave += Services_BeforeSave;
            svc.Initialize(ConfigAlwaysCreate, mgr, null);
            mgr.Subscribe(typeof(LogMessage), LogMessageListener);
            mgr.Publish(new ChangeSetInfo("Author", "Message", new List<string>(), "6", referenceDate, new List<string>()));

            IAttributeDefinition changesetreferencedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Reference");
            IAttributeDefinition changesetprimaryworkitemsdef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.PrimaryWorkitems");
            IAttributeDefinition changesetnamedef = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Name");
            IAttributeDefinition changesetdescriptionref = svc.StubCentral.MetaModel.GetAttributeDefinition("ChangeSet.Description");

            Assert.AreEqual(1, _lastsaved.Count);

            Asset beforesave = _lastsaved[0].Assets[0];

            Assert.AreEqual(GetReferenceChangeSetNameDef(), beforesave.GetAttribute(changesetnamedef).Value);
            Assert.AreEqual("Message", beforesave.GetAttribute(changesetdescriptionref).Value);
            Assert.AreEqual("6", beforesave.GetAttribute(changesetreferencedef).Value);
            Assert.IsNull(beforesave.GetAttribute(changesetprimaryworkitemsdef));
        }
 public void ChangeSetNoWorkitems()
 {
     IEventManager mgr = new EventManager();
     var svc = new TestChangeSetWriterService();
     svc.Initialize(ConfigNoLink, mgr, null);
     mgr.Subscribe(typeof(LogMessage), LogMessageListener);
     IList<string> references = new List<string>();
     references.Add("TK-1111");
     mgr.Publish(new ChangeSetInfo("Author", "Message", new List<string>(), "7", DateTime.Now, references));
     Assert.AreEqual(2, _logmessages.Count);
     Assert.AreEqual("No Stories or Defects related to reference: TK-1111", _logmessages[0].Message);
     Assert.AreEqual("No Change Set References. Ignoring Change Set: 7", _logmessages[1].Message);
 }
 public void ChangeSetNoReferences()
 {
     IEventManager mgr = new EventManager();
     var svc = new TestChangeSetWriterService();
     svc.Initialize(ConfigNoLink, mgr, null);
     mgr.Subscribe(typeof(LogMessage), LogMessageListener);
     mgr.Publish(new ChangeSetInfo("Author", "Message", new List<string>(), "6", DateTime.Now, new List<string>()));
     Assert.AreEqual(1, _logmessages.Count);
     Assert.AreEqual("No Change Set References. Ignoring Change Set: 6", _logmessages[0].Message);
 }