public void GetScopesAsList() { Random random = new Random(); var events = new List <DomainEvent>(); Int32 rootScopeAmount = random.Next(10, 30); List <Guid> rootScopeIds = new List <Guid>(rootScopeAmount); for (int i = 0; i < rootScopeAmount; i++) { Guid scopeId = Guid.NewGuid(); IPv6Address start = random.GetIPv6Address(); IPv6Address end = start + 100; events.Add(new DHCPv6ScopeAddedEvent(new DHCPv6ScopeCreateInstruction { Id = scopeId, Name = random.GetAlphanumericString(), AddressProperties = new DHCPv6ScopeAddressProperties(start, end), })); rootScopeIds.Add(scopeId); GenerateScopeTree( random.NextDouble(), random, new List <Guid> { scopeId }, events); } var scopeResolverMock = new Mock <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict); scopeResolverMock.Setup(x => x.InitializeResolver(It.IsAny <CreateScopeResolverInformation>())).Returns(Mock.Of <IScopeResolver <DHCPv6Packet, IPv6Address> >()); Mock <ILoggerFactory> factoryMock = new Mock <ILoggerFactory>(MockBehavior.Strict); factoryMock.Setup(x => x.CreateLogger(It.IsAny <String>())).Returns(Mock.Of <ILogger <DHCPv6RootScope> >()); DHCPv6RootScope rootScope = new DHCPv6RootScope(random.NextGuid(), scopeResolverMock.Object, factoryMock.Object); rootScope.Load(events); var controller = new DHCPv6ScopeController( Mock.Of <IMediator>(MockBehavior.Strict), Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), rootScope); var actionResult = controller.GetScopesAsList(); var result = actionResult.EnsureOkObjectResult <IEnumerable <DHCPv6ScopeItem> >(true); Assert.Equal(events.Count, result.Count()); for (int i = 0; i < events.Count; i++) { var scope = result.ElementAt(i); var @event = (DHCPv6ScopeAddedEvent)events[i]; Assert.Equal(@event.Instructions.Name, scope.Name); Assert.Equal(@event.Instructions.Id, scope.Id); Assert.Equal(@event.Instructions.AddressProperties.Start.ToString(), scope.StartAddress); Assert.Equal(@event.Instructions.AddressProperties.End.ToString(), scope.EndAddress); } }
public async Task UpdateScope(Boolean mediatorResultShouldBeSuccessful) { Random random = new Random(); Guid id = random.NextGuid(); String name = random.GetAlphanumericString(); String description = random.GetAlphanumericString(); Guid? parentId = random.NextBoolean() == true?random.NextGuid() : new Guid?(); var addressProperties = new DHCPv6ScopeAddressPropertyReqest(); var resolverInfo = new CreateScopeResolverRequest { Typename = random.GetAlphanumericString(), PropertiesAndValues = new Dictionary <String, String>() }; Mock <ILoggerFactory> factoryMock = new Mock <ILoggerFactory>(MockBehavior.Strict); factoryMock.Setup(x => x.CreateLogger(It.IsAny <String>())).Returns(Mock.Of <ILogger <DHCPv6RootScope> >()); DHCPv6RootScope rootScope = new DHCPv6RootScope(random.NextGuid(), Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), factoryMock.Object); Mock <IMediator> mediatorMock = new Mock <IMediator>(MockBehavior.Strict); mediatorMock.Setup(x => x.Send(It.Is <UpdateDHCPv6ScopeCommand>(y => y.ScopeId == id && y.Name == name && y.Description == description && y.ParentId == parentId && y.AddressProperties == addressProperties && y.Resolver == resolverInfo ), It.IsAny <CancellationToken>())).ReturnsAsync(mediatorResultShouldBeSuccessful).Verifiable(); var request = new CreateOrUpdateDHCPv6ScopeRequest { Name = name, Description = description, AddressProperties = addressProperties, ParentId = parentId, Resolver = resolverInfo, }; var controller = new DHCPv6ScopeController(mediatorMock.Object, Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), rootScope); var actionResult = await controller.UpdateScope(request, id); if (mediatorResultShouldBeSuccessful == true) { actionResult.EnsureNoContentResult(); } else { actionResult.EnsureBadRequestObjectResult("unable to execute service operation"); } mediatorMock.Verify(); }
public async Task UpdateScopeParent(Boolean mediatorResultShouldBeSuccessful) { Random random = new Random(); Guid id = random.NextGuid(); Guid?parentId = random.NextBoolean() == true?random.NextGuid() : new Guid?(); Mock <ILoggerFactory> factoryMock = new Mock <ILoggerFactory>(MockBehavior.Strict); factoryMock.Setup(x => x.CreateLogger(It.IsAny <String>())).Returns(Mock.Of <ILogger <DHCPv6RootScope> >()); DHCPv6RootScope rootScope = new DHCPv6RootScope(random.NextGuid(), Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), factoryMock.Object); Mock <IMediator> mediatorMock = new Mock <IMediator>(MockBehavior.Strict); mediatorMock.Setup(x => x.Send(It.Is <UpdateDHCPv6ScopeParentCommand>(y => y.ScopeId == id && y.ParentScopeId == parentId ), It.IsAny <CancellationToken>())).ReturnsAsync(mediatorResultShouldBeSuccessful).Verifiable(); var controller = new DHCPv6ScopeController(mediatorMock.Object, Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), rootScope); var actionResult = await controller.UpdateScopeParent(id, parentId); if (mediatorResultShouldBeSuccessful == true) { actionResult.EnsureNoContentResult(); } else { actionResult.EnsureBadRequestObjectResult("unable to execute service operation"); } mediatorMock.Verify(); }
private async Task CheckModelState(Func <DHCPv6ScopeController, Task <IActionResult> > controllerExecuter) { Mock <ILoggerFactory> factoryMock = new Mock <ILoggerFactory>(MockBehavior.Strict); factoryMock.Setup(x => x.CreateLogger(It.IsAny <String>())).Returns(Mock.Of <ILogger <DHCPv6RootScope> >()); Random random = new Random(); DHCPv6RootScope rootScope = new DHCPv6RootScope(random.NextGuid(), Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), factoryMock.Object); var controller = new DHCPv6ScopeController( Mock.Of <IMediator>(MockBehavior.Strict), Mock.Of <IScopeResolverManager <DHCPv6Packet, IPv6Address> >(MockBehavior.Strict), rootScope ); String modelErrorKey = "a" + random.GetAlphanumericString(); String modelErrorMessage = random.GetAlphanumericString(); controller.ModelState.AddModelError(modelErrorKey, modelErrorMessage); var result = await controllerExecuter(controller); result.EnsureBadRequestObjectResultForError(modelErrorKey, modelErrorMessage); }