public virtual void TestRelatingToOldEntityWithoutDomainId() { // New entity is put in the default domain TimelineEntity entityToStore = new TimelineEntity(); entityToStore.SetEntityType("NEW_ENTITY_TYPE_1"); entityToStore.SetEntityId("NEW_ENTITY_ID_1"); entityToStore.SetDomainId(TimelineDataManager.DefaultDomainId); entityToStore.AddRelatedEntity("OLD_ENTITY_TYPE_1", "OLD_ENTITY_ID_1"); TimelineEntities entities = new TimelineEntities(); entities.AddEntity(entityToStore); store.Put(entities); TimelineEntity entityToGet = store.GetEntity("OLD_ENTITY_ID_1", "OLD_ENTITY_TYPE_1" , null); NUnit.Framework.Assert.IsNotNull(entityToGet); NUnit.Framework.Assert.IsNull(entityToGet.GetDomainId()); NUnit.Framework.Assert.AreEqual("NEW_ENTITY_TYPE_1", entityToGet.GetRelatedEntities ().Keys.GetEnumerator().Next()); NUnit.Framework.Assert.AreEqual("NEW_ENTITY_ID_1", entityToGet.GetRelatedEntities ().Values.GetEnumerator().Next().GetEnumerator().Next()); // New entity is not put in the default domain entityToStore = new TimelineEntity(); entityToStore.SetEntityType("NEW_ENTITY_TYPE_2"); entityToStore.SetEntityId("NEW_ENTITY_ID_2"); entityToStore.SetDomainId("NON_DEFAULT"); entityToStore.AddRelatedEntity("OLD_ENTITY_TYPE_1", "OLD_ENTITY_ID_1"); entities = new TimelineEntities(); entities.AddEntity(entityToStore); TimelinePutResponse response = store.Put(entities); NUnit.Framework.Assert.AreEqual(1, response.GetErrors().Count); NUnit.Framework.Assert.AreEqual(TimelinePutResponse.TimelinePutError.ForbiddenRelation , response.GetErrors()[0].GetErrorCode()); entityToGet = store.GetEntity("OLD_ENTITY_ID_1", "OLD_ENTITY_TYPE_1", null); NUnit.Framework.Assert.IsNotNull(entityToGet); NUnit.Framework.Assert.IsNull(entityToGet.GetDomainId()); // Still have one related entity NUnit.Framework.Assert.AreEqual(1, entityToGet.GetRelatedEntities().Keys.Count); NUnit.Framework.Assert.AreEqual(1, entityToGet.GetRelatedEntities().Values.GetEnumerator ().Next().Count); }
private static TimelineEntity MaskFields(TimelineEntity entity, EnumSet <TimelineReader.Field > fields) { // Conceal the fields that are not going to be exposed TimelineEntity entityToReturn = new TimelineEntity(); entityToReturn.SetEntityId(entity.GetEntityId()); entityToReturn.SetEntityType(entity.GetEntityType()); entityToReturn.SetStartTime(entity.GetStartTime()); entityToReturn.SetDomainId(entity.GetDomainId()); // Deep copy if (fields.Contains(TimelineReader.Field.Events)) { entityToReturn.AddEvents(entity.GetEvents()); } else { if (fields.Contains(TimelineReader.Field.LastEventOnly)) { entityToReturn.AddEvent(entity.GetEvents()[0]); } else { entityToReturn.SetEvents(null); } } if (fields.Contains(TimelineReader.Field.RelatedEntities)) { entityToReturn.AddRelatedEntities(entity.GetRelatedEntities()); } else { entityToReturn.SetRelatedEntities(null); } if (fields.Contains(TimelineReader.Field.PrimaryFilters)) { entityToReturn.AddPrimaryFilters(entity.GetPrimaryFilters()); } else { entityToReturn.SetPrimaryFilters(null); } if (fields.Contains(TimelineReader.Field.OtherInfo)) { entityToReturn.AddOtherInfo(entity.GetOtherInfo()); } else { entityToReturn.SetOtherInfo(null); } return(entityToReturn); }
public virtual void TestRelatingToNonExistingEntity() { TimelineEntity entityToStore = new TimelineEntity(); entityToStore.SetEntityType("TEST_ENTITY_TYPE_1"); entityToStore.SetEntityId("TEST_ENTITY_ID_1"); entityToStore.SetDomainId(TimelineDataManager.DefaultDomainId); entityToStore.AddRelatedEntity("TEST_ENTITY_TYPE_2", "TEST_ENTITY_ID_2"); TimelineEntities entities = new TimelineEntities(); entities.AddEntity(entityToStore); store.Put(entities); TimelineEntity entityToGet = store.GetEntity("TEST_ENTITY_ID_2", "TEST_ENTITY_TYPE_2" , null); NUnit.Framework.Assert.IsNotNull(entityToGet); NUnit.Framework.Assert.AreEqual("DEFAULT", entityToGet.GetDomainId()); NUnit.Framework.Assert.AreEqual("TEST_ENTITY_TYPE_1", entityToGet.GetRelatedEntities ().Keys.GetEnumerator().Next()); NUnit.Framework.Assert.AreEqual("TEST_ENTITY_ID_1", entityToGet.GetRelatedEntities ().Values.GetEnumerator().Next().GetEnumerator().Next()); }