private bool ResultDataTreeIsCorrect(OrganisationHierarchyCacheItem result) { //work down the tree and check the child counts and ids of children. Assert.AreEqual(result.OrganisationId, _orgA1, "Top level Id expected to be _orgA1"); Assert.AreEqual(_orgA1.ToString(), result.Metadata[_orgA1.ToString()]); Assert.AreEqual(3, result.ChildOrganisations.Count, "Expected top level to have 3 children"); Assert.IsNotNull(result.ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgB1), "Expected B1 as child id"); Assert.IsNotNull(result.ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgB2), "Expected B2 as child id"); Assert.IsNotNull(result.ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgD6), "Expected D6 as child id"); Assert.AreEqual(2, result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.Count, "Expected B1 to have 2 children"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgC1), "Expected C1 as child id"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgD4), "Expected D4 as child id"); Assert.AreEqual(2, result.ChildOrganisations.Single(x => x.OrganisationId == _orgB2).ChildOrganisations.Count, "Expected B2 to have 2 children"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB2).ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgC2), "Expected C2 as child id"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB2).ChildOrganisations.SingleOrDefault(x => x.OrganisationId == _orgD4), "Expected D4 as child id"); Assert.AreEqual(3, result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.Single(x => x.OrganisationId == _orgC1).ChildOrganisations.Count, "Expected C1 to have 3 children"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.Single(x => x.OrganisationId == _orgC1).ChildOrganisations.SingleOrDefault(x => x.OrganisationId.Equals(_orgD1)), "Expected D1 as child id"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.Single(x => x.OrganisationId == _orgC1).ChildOrganisations.SingleOrDefault(x => x.OrganisationId.Equals(_orgD2)), "Expected D2 as child id"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB1).ChildOrganisations.Single(x => x.OrganisationId == _orgC1).ChildOrganisations.SingleOrDefault(x => x.OrganisationId.Equals(_orgD3)), "Expected D3 as child id"); Assert.AreEqual(1, result.ChildOrganisations.Single(x => x.OrganisationId == _orgB2).ChildOrganisations.Single(x => x.OrganisationId == _orgC2).ChildOrganisations.Count, "Expected C2 to have 1 child"); Assert.IsNotNull(result.ChildOrganisations.Single(x => x.OrganisationId == _orgB2).ChildOrganisations.Single(x => x.OrganisationId == _orgC2).ChildOrganisations.SingleOrDefault(x => x.OrganisationId.Equals(_orgD5)), "Expected D5 as child id"); return(true); }
public void ContainsOrganisationId_WithMultiLevelTreeThatDoesContainId_ReturnsTrue() { var targetId = Guid.NewGuid(); var bottomLevelTree = new OrganisationHierarchyCacheItem { OrganisationId = targetId }; var middleLevelTree = new OrganisationHierarchyCacheItem { OrganisationId = Guid.NewGuid(), ChildOrganisations = new List <OrganisationHierarchyCacheItem> { bottomLevelTree } }; var sut = new OrganisationHierarchyCacheItem { OrganisationId = Guid.NewGuid(), ChildOrganisations = new List <OrganisationHierarchyCacheItem> { middleLevelTree } }; //act var result = sut.ContainsOrganisationId(targetId); Assert.IsTrue(result); }
public void Consume_CallsAddOrUpdate_WithCorrectObjectValue() { var organisationTreeItemCacheMock = new Mock <IOrganisationHierarchyCache>(); var sut = new OrganisationHierarchyCacheItemBackplaneConsumer(_loggerMock.Object, organisationTreeItemCacheMock.Object); var orgTreeItem = new OrganisationHierarchyCacheItem { OrganisationId = Guid.NewGuid(), Metadata = new CaseInsensitiveDictionary { { "key1", "value1" }, { "key2", "value2" } }, ChildOrganisations = new List <OrganisationHierarchyCacheItem> { new OrganisationHierarchyCacheItem { OrganisationId = Guid.NewGuid(), Metadata = new CaseInsensitiveDictionary(), ChildOrganisations = null }, new OrganisationHierarchyCacheItem { OrganisationId = Guid.NewGuid(), Metadata = new CaseInsensitiveDictionary(), ChildOrganisations = null }, } }; sut.Consume(orgTreeItem); organisationTreeItemCacheMock.Verify(x => x.AddOrUpdate(orgTreeItem.OrganisationId, orgTreeItem)); organisationTreeItemCacheMock.VerifyNoOtherCalls(); }
public void ContainsOrganisationId_WithIdAtTopLevel_ReturnsTrue() { var targetId = Guid.NewGuid(); var sut = new OrganisationHierarchyCacheItem { OrganisationId = targetId }; //act var result = sut.ContainsOrganisationId(targetId); Assert.IsTrue(result); }
public void AddOrUpdate_WithInitialAddEntry_ThenUpdateEntry_AddsAndUpdatesEntryCorrectlyAndNoMessagesArePublished() { var key = new Guid("bc44ffe6-0533-47c8-986b-e40347a4d072"); var initialValue = new OrganisationHierarchyCacheItem { OrganisationId = key, ChildOrganisations = null, Metadata = null }; var updatedValue = new OrganisationHierarchyCacheItem { OrganisationId = key, ChildOrganisations = new List <OrganisationHierarchyCacheItem>(), Metadata = new CaseInsensitiveDictionary { { "key1", "value1" } } }; var sut = new Core.OrganisationHierarchyCache.OrganisationHierarchyCache(_loggerMock.Object, _requestStoreMock.Object, _dateTimeProviderMock.Object, _backplaneMock.Object, _configurationManagerMock.Object); sut.AddOrUpdate(key, initialValue); Assert.AreEqual(initialValue, sut.GetValue(key)); sut.AddOrUpdate(key, updatedValue); Assert.AreEqual(updatedValue, sut.GetValue(key)); _requestStoreMock.VerifyNoOtherCalls(); _backplaneMock.VerifyNoOtherCalls(); }