public void TestCompareCollection1() { const string dbName = "introspectortest1.odb"; DeleteBase(dbName); var odb = OdbFactory.Open(dbName); var user = new User("olivier smadja", "*****@*****.**", new Profile("operator", new VO.Login.Function("login"))); IObjectInfoComparator comparator = new ObjectInfoComparator(); var storageEngine = ((global::NDatabase.Odb)odb).GetStorageEngine(); var instanceInfo = (NonNativeObjectInfo) new ObjectIntrospector(storageEngine.GetClassInfoProvider()).GetMetaRepresentation(user, true, null, new InstrumentationCallbackForStore(null, false)); // Sets attributes offsets - this is normally done by reading then from // disk, but in this junit, // we must set them manually var offsets = new[] {1L, 2L, 3L}; var ids = new[] {1, 2, 3}; instanceInfo.GetHeader().SetAttributesIdentification(offsets); instanceInfo.GetHeader().SetAttributesIds(ids); instanceInfo.GetHeader().SetOid(OIDFactory.BuildObjectOID(1)); var nnoiProfile = (NonNativeObjectInfo) instanceInfo.GetAttributeValueFromId(3); nnoiProfile.SetOid(OIDFactory.BuildObjectOID(2)); var nnoiFunctions = (NonNativeObjectInfo) nnoiProfile.GetAttributeValueFromId(1); nnoiFunctions.SetOid(OIDFactory.BuildObjectOID(3)); user.SetName("Olivier Smadja"); var instanceInfo3 = (NonNativeObjectInfo) new ObjectIntrospector(storageEngine.GetClassInfoProvider()).GetMetaRepresentation(user, true, null, new InstrumentationCallbackForStore(null, false)); instanceInfo3.GetHeader().SetOid(OIDFactory.BuildObjectOID(1)); nnoiProfile = (NonNativeObjectInfo) instanceInfo3.GetAttributeValueFromId(3); nnoiProfile.SetOid(OIDFactory.BuildObjectOID(2)); nnoiFunctions = (NonNativeObjectInfo)nnoiProfile.GetAttributeValueFromId(1); nnoiFunctions.SetOid(OIDFactory.BuildObjectOID(3)); AssertTrue(comparator.HasChanged(instanceInfo, instanceInfo3)); AssertEquals(1, comparator.GetNbChanges()); odb.Close(); }
public void Visit(NDatabase component) { component.View = PostProcessView(new NDatabaseView(component)); }
public NDatabaseView(NDatabase element) : base(element) { this.element = element; }