public async Task VerifyThatReadRdlNotWorksWithoutActivePerson() { var siteDirectoryPoco = new CDP4Common.SiteDirectoryData.SiteDirectory(this.sieSiteDirectoryDto.Iid, this.session.Assembler.Cache, this.uri); var johnDoe = new CDP4Common.SiteDirectoryData.Person(this.person.Iid, this.session.Assembler.Cache, this.uri) { ShortName = "John" }; siteDirectoryPoco.Person.Add(johnDoe); var rdlDto = new CDP4Common.DTO.SiteReferenceDataLibrary { Iid = Guid.NewGuid() }; var rdlPoco = new CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary { Iid = rdlDto.Iid, Name = rdlDto.Name, ShortName = rdlDto.ShortName, Container = siteDirectoryPoco }; this.session.GetType().GetProperty("ActivePerson")?.SetValue(this.session, null, null); await this.session.Assembler.Synchronize(new List <Thing> { rdlDto }); Assert.ThrowsAsync <InvalidOperationException>(async() => await this.session.Read(rdlPoco)); }
public async Task VerifyThatOpenSiteRDLUpdatesListInSession() { var siteDir = new CDP4Common.SiteDirectoryData.SiteDirectory(Guid.NewGuid(), null, null); var JohnDoe = new CDP4Common.SiteDirectoryData.Person(this.person.Iid, this.session.Assembler.Cache, this.uri) { ShortName = "John" }; var rdlDto = new CDP4Common.DTO.SiteReferenceDataLibrary { Iid = Guid.NewGuid() }; var siteDirDto = new CDP4Common.DTO.SiteDirectory() { Iid = Guid.NewGuid() }; var requiredPocoDto = new CDP4Common.DTO.SiteReferenceDataLibrary() { Iid = Guid.NewGuid() }; var requiredPocoRdl = new CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary(requiredPocoDto.Iid, null, null); rdlDto.RequiredRdl = requiredPocoDto.Iid; var credentials = new Credentials("admin", "pass", new Uri("http://www.rheagroup.com")); var session2 = new Session(this.mockedDal.Object, credentials); var rdlPoco = new CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary { Iid = rdlDto.Iid, Name = rdlDto.Name, ShortName = rdlDto.ShortName, Container = siteDir, RequiredRdl = requiredPocoRdl }; var thingsToAdd = new List <Thing>() { siteDirDto, requiredPocoDto, rdlDto }; session2.GetType().GetProperty("ActivePerson").SetValue(session2, JohnDoe, null); await session2.Assembler.Synchronize(thingsToAdd); Assert.IsEmpty(session2.OpenReferenceDataLibraries); await session2.Read(rdlPoco); Assert.AreEqual(2, session2.OpenReferenceDataLibraries.ToList().Count()); await session2.Close(); Assert.IsEmpty(session2.OpenReferenceDataLibraries); }
public async Task VerifyThatCloseRdlWorks() { var siteDirectoryPoco = new CDP4Common.SiteDirectoryData.SiteDirectory(this.sieSiteDirectoryDto.Iid, this.session.Assembler.Cache, this.uri); var JohnDoe = new CDP4Common.SiteDirectoryData.Person(this.person.Iid, this.session.Assembler.Cache, this.uri) { ShortName = "John" }; siteDirectoryPoco.Person.Add(JohnDoe); var rdlDto = new CDP4Common.DTO.SiteReferenceDataLibrary { Iid = Guid.NewGuid() }; var rdlPoco = new CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary { Iid = rdlDto.Iid, Name = rdlDto.Name, ShortName = rdlDto.ShortName, Container = siteDirectoryPoco }; var requiredSiteReferenceDataLibraryDto = new CDP4Common.DTO.SiteReferenceDataLibrary() { Iid = Guid.NewGuid() }; var requiredSiteReferenceDataLibraryPoco = new CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary(requiredSiteReferenceDataLibraryDto.Iid, this.session.Assembler.Cache, this.uri); rdlDto.RequiredRdl = requiredSiteReferenceDataLibraryDto.Iid; rdlPoco.RequiredRdl = requiredSiteReferenceDataLibraryPoco; var thingsToAdd = new List <Thing>() { requiredSiteReferenceDataLibraryDto, rdlDto }; session.GetType().GetProperty("ActivePerson").SetValue(session, JohnDoe, null); await session.Assembler.Synchronize(thingsToAdd); await session.Read(rdlPoco); Assert.AreEqual(2, session.OpenReferenceDataLibraries.ToList().Count()); Lazy <CDP4Common.CommonData.Thing> rdlPocoToClose; session.Assembler.Cache.TryGetValue(new CacheKey(rdlPoco.Iid, null), out rdlPocoToClose); await session.CloseRdl((CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary) rdlPocoToClose.Value); Assert.AreEqual(1, session.OpenReferenceDataLibraries.ToList().Count()); await session.Read(rdlPoco); Assert.AreEqual(2, session.OpenReferenceDataLibraries.ToList().Count()); session.Assembler.Cache.TryGetValue(new CacheKey(rdlPoco.Iid, null), out rdlPocoToClose); Lazy <CDP4Common.CommonData.Thing> requiredRdlToClose; session.Assembler.Cache.TryGetValue(new CacheKey(requiredSiteReferenceDataLibraryPoco.Iid, null), out requiredRdlToClose); await session.CloseRdl((CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary) requiredRdlToClose.Value); Assert.AreEqual(0, session.OpenReferenceDataLibraries.ToList().Count()); await session.CloseRdl((CDP4Common.SiteDirectoryData.SiteReferenceDataLibrary) rdlPocoToClose.Value); Assert.AreEqual(0, session.OpenReferenceDataLibraries.ToList().Count()); }