public void UpdateMultiValueRelationTest() { IMetaModel metaModel = new MetaModel(new VersionOneAPIConnector(_metaUrl)); IServices services = new Services( metaModel, new VersionOneAPIConnector(_dataUrl).WithVersionOneUsernameAndPassword(_username, _password)); var storyId = Oid.FromToken("Story:1124", metaModel); var query = new Query(storyId); var storyType = metaModel.GetAssetType("Story"); var ownersAttribute = storyType.GetAttributeDefinition("Owners"); query.Selection.Add(ownersAttribute); var result = services.Retrieve(query); var story = result.Assets[0]; var values = story.GetAttribute(ownersAttribute).Values; var owners = values.Cast <object>().ToList(); if (owners.Count >= 1) { story.RemoveAttributeValue(ownersAttribute, owners[0]); } services.Save(story); }
public void Complex1() { var termA = new FilterTerm(WorkitemParent); termA.Equal(Oid.FromToken("Theme:5", Meta)); termA.Equal(Oid.FromToken("Theme:6", Meta)); var termB = new FilterTerm(WorkitemScope); termB.Equal(Oid.FromToken("Scope:0", Meta)); var termC = new FilterTerm(WorkitemParent); termC.NotEqual(Oid.FromToken("Theme:7", Meta)); termC.NotEqual(Oid.FromToken("Theme:8", Meta)); var termD = new FilterTerm(WorkitemScope); termD.NotEqual(Oid.FromToken("Scope:1", Meta)); var and1 = new AndFilterTerm(termA, termB); var and2 = new AndFilterTerm(termC, termD); var o = new OrFilterTerm(and1, and2); Assert.AreEqual( "((Workitem.Parent='Theme%3a5','Theme%3a6';Workitem.Scope='Scope%3a0')|(Workitem.Parent!='Theme%3a7','Theme%3a8';Workitem.Scope!='Scope%3a1'))", o.Token); }
public IEnumerable <T> Execute(string token, object[] selectFields) { var oid = Oid.FromToken(token, MetaModelProvider.Meta); var emptyObj = new T(); var query = new Query(oid); var attributes = new List <IAttributeDefinition>(selectFields.Length); attributes.AddRange(selectFields.Select(emptyObj.GetAttribute)); query.Selection.AddRange(attributes); var list = new List <T>(); var result = ServicesProvider.Services.Retrieve(query); if (result.Assets.Count == 0) { return(list); } list.AddRange(result.Assets.Select(emptyObj.Create).Select(asssetObject => asssetObject).Cast <T>()); return(list); }
public void ReOpenAnAssetTest() { IMetaModel metaModel = new MetaModel(new VersionOneAPIConnector(_metaUrl)); IServices services = new Services( metaModel, new VersionOneAPIConnector(_dataUrl).WithVersionOneUsernameAndPassword(_username, _password)); // create a new story var projectId = Oid.FromToken("Scope:0", metaModel); var assetType = metaModel.GetAssetType("Story"); var story = services.New(assetType, projectId); var nameAttribute = assetType.GetAttributeDefinition("Name"); story.SetAttributeValue(nameAttribute, "My New Story"); services.Save(story); // closes the story var closeOperation = metaModel.GetOperation("Story.Inactivate"); var closeId = services.ExecuteOperation(closeOperation, story.Oid); //reopens the story var activateOperation = metaModel.GetOperation("Story.Reactivate"); var activeId = services.ExecuteOperation(activateOperation, story.Oid); var query = new Query(activeId.Momentless); var assetState = metaModel.GetAttributeDefinition("Story.AssetState"); query.Selection.Add(assetState); var result = services.Retrieve(query); Asset activeStory = result.Assets[0]; Assert.AreEqual("Active", activeStory.GetAttribute(assetState).Value.ToString()); }
public void DeleteAnAssetTest() { IMetaModel metaModel = new MetaModel(new VersionOneAPIConnector(_metaUrl)); IServices services = new Services( metaModel, new VersionOneAPIConnector(_dataUrl).WithVersionOneUsernameAndPassword(_username, _password)); // create a new story so we can delete it var projectId = Oid.FromToken("Scope:0", metaModel); var assetType = metaModel.GetAssetType("Story"); var newStory = services.New(assetType, projectId); var nameAttribute = assetType.GetAttributeDefinition("Name"); newStory.SetAttributeValue(nameAttribute, "My New Story"); services.Save(newStory); // delete the story var deleteOperation = metaModel.GetOperation("Story.Delete"); var deletedId = services.ExecuteOperation(deleteOperation, newStory.Oid); var query = new Query(deletedId.Momentless); QueryResult result = services.Retrieve(query); Assert.AreEqual(0, result.TotalAvaliable); // The delete operation returns the Oid with the new Moment of the deleted asset. // Future queries will automatically exclude deleted assets from results. // Currently there is no support for undeleting a deleted asset. }
public void GetRegressionPlanWithValuableFilterTest() { var owner = EntityFactory.CreateMember("Paul"); var nobody = EntityFactory.CreateMember("Mike"); IDictionary <string, object> attributes = new Dictionary <string, object>(); attributes.Add("Owner", Oid.FromToken(owner.ID, Instance.ApiClient.MetaModel)); var plan = EntityFactory.CreateRegressionPlan(RegressionPlanName, SandboxProject, attributes); var filter = new RegressionPlanFilter(); filter.Project.Add(SandboxProject); filter.Owners.Add(owner); var plans = Instance.Get.RegressionPlans(filter); Assert.AreEqual(1, plans.Count); CollectionAssert.Contains(plans, plan); filter = new RegressionPlanFilter(); filter.Project.Add(SandboxProject); filter.Owners.Add(nobody); plans = Instance.Get.RegressionPlans(filter); Assert.AreEqual(0, plans.Count); }
public void UpdateAdminMemberName() { var query = new Query(Oid.FromToken("Member:20", _metaModel)); var nameAttribute = _metaModel.GetAttributeDefinition("Member.Name"); query.Selection.Add(nameAttribute); var result = _services.Retrieve(query); var member = result.Assets[0]; var nameValue = member.GetAttribute(nameAttribute).Value as string; Console.WriteLine("Name is currently: " + nameValue); var newName = string.Empty; while (newName == string.Empty) { newName = ReadString("Please enter a new name and hit enter"); } member.SetAttributeValue(nameAttribute, newName); _services.Save(member); Console.WriteLine(); Console.WriteLine("Saved member, now requerying..."); Console.WriteLine(); result = _services.Retrieve(query); member = result.Assets[0]; nameValue = member.GetAttribute(nameAttribute).Value as string; Console.WriteLine("Name is now: " + nameValue); }
public bool UpdateSingleValueRelation() { var storyId = Oid.FromToken("Story:1094", _context.MetaModel); var query = new Query(storyId); var storyType = _context.MetaModel.GetAssetType("Story"); var sourceAttribute = storyType.GetAttributeDefinition("Source"); query.Selection.Add(sourceAttribute); var result = _context.Services.Retrieve(query); var story = result.Assets[0]; var oldSource = GetValue(story.GetAttribute(sourceAttribute).Value); story.SetAttributeValue(sourceAttribute, GetNextSourceId(oldSource)); _context.Services.Save(story); LogResult(story.Oid.Token, oldSource, GetValue(story.GetAttribute(sourceAttribute).Value)); /***** OUTPUT EXAMPLE ***** * Story:1094:17726 * StorySource:148 * StorySource:149 ******************/ return(true); }
public bool UpdateScalarAttribute() { var storyId = Oid.FromToken("Story:1094", _context.MetaModel); var query = new Query(storyId); var storyType = _context.MetaModel.GetAssetType("Story"); var nameAttribute = storyType.GetAttributeDefinition("Name"); query.Selection.Add(nameAttribute); var result = _context.Services.Retrieve(query); var story = result.Assets[0]; var oldName = GetValue(story.GetAttribute(nameAttribute).Value); story.SetAttributeValue(nameAttribute, Guid.NewGuid().ToString()); _context.Services.Save(story); LogResult(story.Oid.Token, oldName, GetValue(story.GetAttribute(nameAttribute).Value)); /***** OUTPUT EXAMPLE ***** * Story:1094:1446 * Logon * F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4 ******************/ return(true); }
public Asset GetSingleAsset() { var memberId = Oid.FromToken("Member:20", _context.MetaModel); var query = new Query(memberId); var nameAttribute = _context.MetaModel.GetAttributeDefinition("Member.Name"); var emailAttribute = _context.MetaModel.GetAttributeDefinition("Member.Email"); query.Selection.Add(nameAttribute); query.Selection.Add(emailAttribute); var result = _context.Services.Retrieve(query); var member = result.Assets[0]; LogResult(member.Oid.Token, GetValue(member.GetAttribute(nameAttribute).Value), GetValue(member.GetAttribute(emailAttribute).Value)); /***** OUTPUT EXAMPLE ***** * Member:20 * Administrator * [email protected] ******************/ return(member); }
private Project GetProjectById(string id) { if (!connector.IsConnected) { return(null); } if (CurrentProjectId == null) { Logger.Error("Current project is not selected"); throw new DataLayerException("Current project is not selected"); } var query = new Query(Oid.FromToken(id, connector.MetaModel)); AddSelection(query, Entity.ProjectType); try { var result = connector.Services.Retrieve(query); return(result.TotalAvaliable == 1 ? WorkitemFactory.CreateProject(result.Assets[0], null) : null); } catch (MetaException ex) { connector.IsConnected = false; throw new DataLayerException("Unable to get projects", ex); } catch (Exception ex) { throw new DataLayerException("Unable to get projects", ex); } }
private Attribute GetAttributeOnCustomType(Entity entity, string name, bool cachable) { var asset = GetAsset(Oid.FromToken(entity.ID, MetaModel)); var def = asset.AssetType.GetAttributeDefinition(name); var attribute = (cachable ? asset.GetAttribute(def) : null) ?? RetrieveAttribute(asset.Oid, def, cachable); return(attribute); }
internal void RemoveRelation <T>(Entity entity, string name, T value) where T : Entity { var asset = GetAsset(entity); var def = asset.AssetType.GetAttributeDefinition(name); var oid = Oid.FromToken(value.ID, MetaModel); asset.RemoveAttributeValue(def, oid); }
public void HashCodeAndEqualTest() { Oid oid = new Oid(Meta.GetAssetType("Story"), 5, null); Oid oid2 = Oid.FromToken("Story:5", Meta); Assert.AreEqual(oid, oid2); Assert.AreEqual(oid.GetHashCode(), oid2.GetHashCode()); }
protected Asset GetAssetFromV1(string AssetID) { Oid assetId = Oid.FromToken(AssetID, _metaAPI); Query query = new Query(assetId); QueryResult result = _dataAPI.Retrieve(query); return(result.Assets[0]); }
public void FromTokenIsNull() { Oid oid = Oid.FromToken("NULL", Meta); Assert.AreEqual(Oid.Null, oid); Assert.AreSame(Oid.Null, oid); Assert.AreEqual(Oid.Null.GetHashCode(), oid.GetHashCode()); }
public void TestSetValidOidOnAsset() { var newStory = _services.New(_storyAssetType, _projectId); newStory.Oid = Oid.FromToken("Story:999999", _metaModel); Assert.IsNotNull(newStory.Oid); }
public void ShowAdminMemberToken() { var query = new Query(Oid.FromToken("Member:20", _metaModel)); var result = _services.Retrieve(query); var member = result.Assets[0]; Console.WriteLine(member.Oid.Token); }
private Asset CreateDisposableStory(string name, string scopeToken) { var story = new Asset(storyType); assetsToDispose.Add(story); story.SetAttributeValue(nameDef, name); story.SetAttributeValue(scopeDef, Oid.FromToken(scopeToken, metaModel)); services.Save(story); return(story); }
/// <summary> /// Creates a new V1 project for integration test assets. /// </summary> private static void CreateTestProject() { var assetType = _metaModel.GetAssetType("Scope"); var nameAttribute = assetType.GetAttributeDefinition("Name"); var projectId = Oid.FromToken("Scope:0", _metaModel); var newAsset = _services.New(assetType, projectId); newAsset.SetAttributeValue(nameAttribute, TestProjectName); _services.Save(newAsset); _projectId = newAsset.Oid.Momentless; }
protected string GetAssetNumberV1(string AssetType, string AssetID) { IAssetType assetType = _metaAPI.GetAssetType(AssetType); Oid assetId = Oid.FromToken(AssetID, _metaAPI); Query query = new Query(assetId); IAttributeDefinition numberAttribute = assetType.GetAttributeDefinition("Number"); query.Selection.Add(numberAttribute); QueryResult result = _dataAPI.Retrieve(query); return(result.Assets[0].GetAttribute(numberAttribute).Value.ToString()); }
public void HashCodeAndEqualWithMomentTest() { Oid oid = new Oid(Meta.GetAssetType("Story"), 5, 555); Oid oid2 = Oid.FromToken("Story:5:555", Meta); Oid anotherOid = Oid.FromToken("Story:5:666", Meta); Oid momentlessOid = Oid.FromToken("Story:5", Meta); Assert.AreEqual(oid, oid2); Assert.AreEqual(oid.GetHashCode(), oid2.GetHashCode()); Assert.AreNotEqual(oid, anotherOid); Assert.AreNotEqual(oid, momentlessOid); Assert.AreNotEqual(momentlessOid, anotherOid); }
/// <summary> /// Find an asset in the asset cache or create one for this id /// </summary> /// <param name="id"></param> /// <param name="assetTypeToken">The Asset Type Token of the asset to create if one does not already exist</param> /// <returns>An Asset that will exist in the asset cache</returns> private Asset GetAsset(object id, string assetTypeToken) { Asset result; if (!assetCache.TryGetValue(id, out result)) { var assetType = MetaModel.GetAssetType(assetTypeToken); var assetId = id as AssetID; result = assetId != null ? new Asset(Oid.FromToken(assetId, MetaModel)) : new Asset(assetType); SetAsset(id, result); } return(result); }
[Test] public void OidQueryMultiValueAttribute() { var subject = new Services(Meta, DataConnector); var q = new Query(Oid.FromToken("Story:1036", Meta)); var def = Meta.GetAttributeDefinition("Story.Owners"); q.Selection.Add(def); var r = subject.Retrieve(q); var a = r.Assets[0]; var attrib = a.GetAttribute(def); Assert.IsNotNull(attrib); Assert.That(attrib.Values, Is.Empty); }
public void NewMultiValueRelationLoads() { var subject = new Services(Meta, DataConnector); var storyType = Meta.GetAssetType("Story"); var storyRequests = storyType.GetAttributeDefinition("Requests"); var contextOid = Oid.FromToken("Request:6075", Meta); var storyAsset = subject.New(storyType, contextOid); Assert.IsTrue(storyAsset.GetAttribute(storyRequests).HasChanged, "Story Requests has changed"); var x = storyAsset.GetAttribute(storyRequests).NewValues.Cast <object>().ToList(); Assert.IsTrue(x.Contains(contextOid), "Story Requests contains " + contextOid.Token); }
public void CreateRegressionPlanWithAttributesTest() { var member = EntityFactory.CreateMember("test user"); var attributes = new Dictionary <string, object> { { "Description", RegressionPlanDescription }, { "Owner", Oid.FromToken(member.ID, Instance.ApiClient.MetaModel) } }; var regressionPlan = EntityFactory.Create(() => SandboxProject.CreateRegressionPlan(RegressionPlanName, attributes)); Assert.AreEqual(SandboxProject, regressionPlan.Project); Assert.AreEqual(RegressionPlanName, regressionPlan.Name); Assert.AreEqual(RegressionPlanDescription, regressionPlan.Description); Assert.AreEqual(member, regressionPlan.Owner); }
public void ShowMultipleAttributes() { var query = new Query(Oid.FromToken("Member:20", _metaModel)); var nameAttribute = _metaModel.GetAttributeDefinition("Member.Name"); var emailAttribute = _metaModel.GetAttributeDefinition("Member.Email"); query.Selection.Add(nameAttribute); query.Selection.Add(emailAttribute); var result = _services.Retrieve(query); var member = result.Assets[0]; Console.WriteLine("Oid Token: " + member.Oid.Token); Console.WriteLine("Name: " + member.GetAttribute(nameAttribute).Value); Console.WriteLine("Email: " + member.GetAttribute(emailAttribute).Value); }
public void AddNewAssetTest() { IMetaModel metaModel = new MetaModel(new VersionOneAPIConnector(_metaUrl)); IServices services = new Services( metaModel, new VersionOneAPIConnector(_dataUrl).WithVersionOneUsernameAndPassword(_username, _password)); var projectId = Oid.FromToken("Scope:0", metaModel); var assetType = metaModel.GetAssetType("Story"); var newStory = services.New(assetType, projectId); var nameAttribute = assetType.GetAttributeDefinition("Name"); newStory.SetAttributeValue(nameAttribute, "My New Story"); services.Save(newStory); Assert.IsFalse(newStory.Oid.IsNull); }
public void full_working_example_with_basic_authentication() { // Setting up a basic connection with the connector and retrieving the Member with the ID 20 var dataConnector = new VersionOneAPIConnector(_prefix + "rest-1.v1/") .WithVersionOneUsernameAndPassword(_username, _password); var metaConnector = new VersionOneAPIConnector(_prefix + "meta.v1/"); IMetaModel metaModel = new MetaModel(metaConnector); IServices services = new Services(metaModel, dataConnector); var memberId = Oid.FromToken("Member:20", metaModel); var query = new Query(memberId); var memberName = metaModel.GetAttributeDefinition("Member.Name"); query.Selection.Add(memberName); var result = services.Retrieve(query); }
public void EnvironmentContextUsageTest() { var context = new EnvironmentContext(); var memberId = Oid.FromToken("Member:20", context.MetaModel); var query = new Query(memberId); var nameAttribute = context.MetaModel.GetAttributeDefinition("Member.Name"); var emailAttribute = context.MetaModel.GetAttributeDefinition("Member.Email"); query.Selection.Add(nameAttribute); query.Selection.Add(emailAttribute); var result = context.Services.Retrieve(query); var member = result.Assets[0]; Assert.AreEqual("Administrator", member.GetAttribute(nameAttribute).Value); Assert.AreEqual("*****@*****.**", member.GetAttribute(emailAttribute).Value); }