Exemplo n.º 1
0
        public async Task <IActionResult> DeleteTag(ToggleLocator id, string tagName)
        {
            var request  = new RemoveToggleTagRequest(GetEditor(), id, tagName);
            var response = await _mediator.Send(request);

            return(new JsonResult(response.Tags));
        }
        public async Task <IActionResult> DeleteCondition(ToggleLocator id, ConditionID condition)
        {
            var request  = new RemoveToggleConditionRequest(GetEditor(), id, condition);
            var response = await _mediator.Send(request);

            return(new JsonResult(response.Conditions));
        }
Exemplo n.º 3
0
 public AddToggleConditionRequest(EditorID editor, ToggleLocator locator, ConditionID parentID, Dictionary <string, object> properties)
 {
     Editor     = editor;
     Locator    = locator;
     ParentID   = parentID;
     Properties = properties;
 }
Exemplo n.º 4
0
 public async Task <IActionResult> Get(ToggleLocator id)
 {
     return(new JsonResult(new
     {
         ConditionTypes = ConditionBuilder.AvailableTypes().OrderBy(n => n)
     }));
 }
Exemplo n.º 5
0
        public GetSingleToggleTagsTests()
        {
            _mediator   = Substitute.For <IMediator>();
            _controller = new ToggleTagsController(_mediator);

            _validLocator   = ToggleLocator.Create("i exist");
            _invalidLocator = ToggleLocator.Create("i dont exist");

            var toggleView = new ToggleView
            {
                ID          = ToggleID.CreateNew(),
                Name        = "toggle-1",
                Description = "the first toggle",
                Tags        = { "first", "dev" }
            };

            var response = new GetToggleResponse
            {
                Toggle = toggleView
            };

            _mediator
            .Send(Arg.Any <GetToggleRequest>())
            .Returns(new GetToggleResponse());
            _mediator
            .Send(Arg.Is <GetToggleRequest>(req => req.Locator == _validLocator))
            .Returns(response);
        }
        public async Task <IActionResult> GetConditions(ToggleLocator id)
        {
            var request  = new GetToggleRequest(id);
            var response = await _mediator.Send(request);

            return(new JsonResult(response.Toggle?.Conditions));
        }
        public async Task <IActionResult> GetConditions(ToggleLocator id, ConditionID condition)
        {
            var request  = new GetToggleRequest(id);
            var response = await _mediator.Send(request);

            return(new JsonResult(response.Toggle?.Conditions?.SingleOrDefault(c => c.ID == condition)));
        }
Exemplo n.º 8
0
        public async Task <IActionResult> GetDescription(ToggleLocator id)
        {
            var request  = new GetToggleRequest(id);
            var response = await _mediator.Send(request);

            return(new JsonResult(new { response.Toggle?.Description }));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> PutName(ToggleLocator id, [FromBody] ToggleNamePutRequest model)
        {
            var editor   = EditorID.Parse("TestApiUser");           //User.Identity.Name
            var request  = new RenameToggleRequest(editor, id, model.Name);
            var response = await _mediator.Send(request);

            return(new JsonResult(response));
        }
Exemplo n.º 10
0
        public async Task When_the_requested_toggle_doesnt_exist_by_name()
        {
            var toggleName = ToggleID.CreateNew().ToString();

            var result = await _handler.Handle(new GetToggleRequest(ToggleLocator.Create(toggleName)), CancellationToken.None);

            result.Toggle.ShouldBeNull();
        }
Exemplo n.º 11
0
        public async Task When_fetching_a_single_toggle_by_name()
        {
            var locator  = ToggleLocator.Create("toggle-name");
            var response = (JsonResult)await _controller.Get(locator);

            await _mediator.Received().Send(Arg.Is <GetToggleRequest>(req => req.Locator == locator));

            response.Value.ShouldBeOfType <ToggleView>();
        }
        public async Task <IActionResult> AddCondition(ToggleLocator id, [FromBody] ConditionDto condition)
        {
            var request  = new AddToggleConditionRequest(GetEditor(), id, condition);
            var response = await _mediator.Send(request);

            return(Created(
                       $"/toggles/id/{response.ToggleID}/conditions/{response.Condition.ID}",
                       response.Condition
                       ));
        }
Exemplo n.º 13
0
        protected HandlerTest()
        {
            Events = new PendingEventsStore();

            Storage = new InMemoryStorage(Events);
            Storage.RegisterAggregate <ToggleID, Toggle>();
            Storage.RegisterProjection <ToggleView>();

            Toggle  = Toggle.CreateNew(EditorID.Parse("editor"), "name", "desc");
            Locator = ToggleLocator.Create(Toggle.ID);
            Editor  = EditorID.Parse("Editor:" + Guid.NewGuid());
        }
Exemplo n.º 14
0
        public async Task When_the_requested_toggle_exists_by_name()
        {
            var toggleName = "name";

            _view.Add(new ToggleView {
                ID = ToggleID.CreateNew(), Name = toggleName, Description = "desc"
            });

            var result = await _handler.Handle(new GetToggleRequest(ToggleLocator.Create(toggleName)), CancellationToken.None);

            result.Toggle.Name.ShouldBe(toggleName);
        }
        private async Task <UpdateToggleTagsResponse> ModifyTags(ToggleLocator locator, Action <Toggle> modify)
        {
            var toggle = await locator.LocateAggregate(_session);

            modify(toggle);
            await _session.Save(toggle);

            return(new UpdateToggleTagsResponse
            {
                Tags = toggle.Tags.ToArray()
            });
        }
Exemplo n.º 16
0
        public async Task <IActionResult> AddConditionAsChild(ToggleLocator id, ConditionID parent, [FromBody] ConditionDto condition)
        {
            var request  = new AddToggleConditionRequest(GetEditor(), id, parent, condition);
            var response = await _mediator.Send(request);

            var uri = Url.Action(nameof(GetCondition), new
            {
                id        = response.ToggleID,
                condition = response.AddedConditionID
            });

            return(Created(uri, response));
        }
        public async Task When_adding_a_condition()
        {
            var toggle = Toggle.CreateNew(Editor, "Toggle", "original");

            using (var session = Storage.CreateSession())
                await session.Save(toggle);

            _props["type"] = "enabled";

            await Send(new AddToggleConditionRequest(Editor, ToggleLocator.Create(toggle.ID), _props));

            Response
            .Condition
            .ShouldBeOfType <EnabledCondition>();
        }
Exemplo n.º 18
0
        public Task BindModelAsync(ModelBindingContext bindingContext)
        {
            if (bindingContext.ModelType != typeof(ToggleLocator))
            {
                return(Task.CompletedTask);
            }

            var value = bindingContext.ValueProvider.GetValue(bindingContext.FieldName);
            var guid  = Guid.Empty;

            var locator = Guid.TryParse(value.FirstValue, out guid)
                                ? ToggleLocator.Create(ToggleID.Parse(guid))
                                : ToggleLocator.Create(value.FirstValue);

            bindingContext.Result = ModelBindingResult.Success(locator);

            return(Task.CompletedTask);
        }
Exemplo n.º 19
0
 public void When_removing_tags_and_the_toggle_doesnt_exist()
 {
     Should.Throw <AggregateNotFoundException>(async() => await Handler.Handle(
                                                   new RemoveToggleTagRequest(Editor, ToggleLocator.Create(ToggleID.CreateNew()), "wat"), CancellationToken.None)
                                               );
 }
 public ChangeToggleDescriptionRequest(EditorID editor, ToggleLocator locator, string description)
 {
     Editor      = editor;
     Locator     = locator;
     Description = description;
 }
Exemplo n.º 21
0
 public ChangeConditionModeRequest(EditorID editor, ToggleLocator locator, ConditionModes mode)
 {
     Editor  = editor;
     Locator = locator;
     Mode    = mode;
 }
Exemplo n.º 22
0
 public GetToggleRequest(ToggleLocator locator)
 {
     Locator = locator;
 }
Exemplo n.º 23
0
 private Task <ICollection <string> > ValidateMessage() => _validator.Validate(
     new AddToggleConditionRequest(
         EditorID.Parse("test"),
         ToggleLocator.Create("wat"),
         _props
         ));
Exemplo n.º 24
0
 public RemoveToggleTagRequest(EditorID editor, ToggleLocator locator, string tagName)
 {
     Editor  = editor;
     Locator = locator;
     TagName = tagName;
 }
Exemplo n.º 25
0
        protected override async Task <GetToggleRequest> When()
        {
            await CreateToggle();

            return(new GetToggleRequest(ToggleLocator.Create(ToggleID.CreateNew())));
        }
Exemplo n.º 26
0
 public RemoveToggleConditionRequest(EditorID editor, ToggleLocator locator, ConditionID conditionId)
 {
     Editor      = editor;
     Locator     = locator;
     ConditionId = conditionId;
 }
Exemplo n.º 27
0
 public RenameToggleRequest(EditorID editor, ToggleLocator locator, string name)
 {
     Editor  = editor;
     Locator = locator;
     Name    = name;
 }