Esempio n. 1
0
        public async Task When_a_condition_has_children()
        {
            var editor = EditorID.Parse("me");

            _toggle.AddCondition(editor, Condition("all"));
            _toggle.AddCondition(editor, Condition("enabled"), ConditionID.Parse(0));
            _toggle.AddCondition(editor, Condition("disabled"), ConditionID.Parse(0));

            using (var session = _storage.CreateSession())
                await session.Save(_toggle);

            await _system.Scenario(_ =>
            {
                _.Get
                .Url($"/toggles/id/{_toggle.ID}/conditions");

                _.StatusCodeShouldBeOk();
                _.ContentShouldBe(@"[
  {
    ""children"": [
      { ""conditionType"": ""Enabled"", ""id"": 1 },
      { ""conditionType"": ""Disabled"", ""id"": 2 }
    ],
    ""conditionType"": ""All"",
    ""id"": 0
  }
]".Replace(" ", "").Replace("\r\n", ""));
            });
        }
        protected StorageSessionTests()
        {
            Builders    = new Dictionary <Type, Func <IEnumerable <IEvent>, object> >();
            Projections = new List <Projector>();
            Editor      = EditorID.Parse("wat");

            Builders[typeof(Toggle)] = events => AggregateBuilder.Build(new Toggle(), events);
        }
Esempio n. 3
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));
        }
Esempio n. 4
0
        public async Task <IActionResult> Post([FromBody] TogglePostRequest model)
        {
            var editor   = EditorID.Parse("TestApiUser");                       //User.Identity.Name
            var request  = new CreateToggleRequest(editor, model.Name, model.Description);
            var response = await _mediator.Send(request);

            return(Created("/toggles/id/" + response.Toggle.ID, response.Toggle));
        }
Esempio n. 5
0
 public CreateToggleTests()
 {
     _mediator   = Substitute.For <IMediator>();
     _controller = new TogglesController(_mediator);
     _response   = new CreateTogglesResponse
     {
         Toggle = Toggle.CreateNew(EditorID.Parse("123"), "one", "two").ToView()
     };
 }
Esempio n. 6
0
        public async Task <IActionResult> Post([FromBody] TogglePostRequest model)
        {
            var editor   = EditorID.Parse("TestApiUser");           //User.Identity.Name
            var request  = new CreateToggleRequest(editor, model.Name, model.Description);
            var response = await _mediator.Send(request);

            var uri = Url.Action(nameof(Get), new { id = response.Toggle.ID });

            return(Created(uri, response.Toggle));
        }
Esempio n. 7
0
        public async Task When_a_projection_is_registered()
        {
            _storage.RegisterProjection <ToggleView>();

            using (var session = _storage.CreateSession())
                await session.Save(Toggle.CreateNew(EditorID.Parse("test"), "Test", "no"));

            using (var session = _storage.CreateSession())
                (await session.QueryProjection <ToggleView>()).ShouldHaveSingleItem();
        }
        public GetToggleHandlerTests()
        {
            _view = new List <ToggleView>();

            var session = Substitute.For <IStorageSession>();

            session.QueryProjection <ToggleView>().Returns(_view);

            _handler = new GetToggleHandler(session);
            _creator = EditorID.Parse("test editor");
        }
Esempio n. 9
0
        public CreateToggleTests()
        {
            _response = new CreateTogglesResponse
            {
                Toggle = Toggle.CreateNew(EditorID.Parse("123"), "one", "two").ToView()
            };

            _mediator       = Substitute.For <IMediator>();
            _controller     = new TogglesController(_mediator);
            _controller.Url = Substitute.For <IUrlHelper>();
            _controller.Url.Action(Arg.Any <UrlActionContext>()).Returns("/api/toggles/id/" + _response.Toggle.ID);
        }
Esempio n. 10
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());
        }
Esempio n. 11
0
        public async Task When_removing_a_condition_from_a_toggle()
        {
            _toggle.AddCondition(EditorID.Parse("me"), Condition("disabled"));
            await _fixture.SaveToggle(_toggle);

            await _fixture.Scenario(_ =>
            {
                _.Delete
                .Url($"/api/toggles/id/{_toggle.ID}/conditions/0");

                _.StatusCodeShouldBeOk();
                _.ContentShouldBe($"{{\"toggleID\":\"{_toggle.ID}\",\"conditions\":[]}}");
            });
        }
Esempio n. 12
0
        public async Task When_removing_a_condition_from_a_toggle()
        {
            _toggle.AddCondition(EditorID.Parse("me"), Condition("disabled"));
            using (var session = _storage.CreateSession())
                await session.Save(_toggle);

            await _system.Scenario(_ =>
            {
                _.Delete
                .Url($"/toggles/id/{_toggle.ID}/conditions/0");

                _.StatusCodeShouldBeOk();
                _.ContentShouldBe("[]");
            });
        }
Esempio n. 13
0
        public ApiFixture()
        {
            _fixture = new Fixture();
            _storage = new InMemoryStorage();
            _storage.RegisterProjection <ToggleView>();
            _storage.RegisterAggregate <ToggleID, Toggle>();

            _system = SystemUnderTest.ForStartup <Startup>();
            _system.Configure(builder => builder.UseLamar());
            _system.ConfigureServices(services =>
            {
                services.AddSingleton <IStorage>(_storage);
                services.AddScoped(sp => _storage.CreateSession());
            });

            Editor = EditorID.Parse("me");
        }
Esempio n. 14
0
        protected HandlerPipelineTest()
        {
            Editor  = EditorID.Parse("me");
            Storage = new InMemoryStorage();
            Storage.RegisterAggregate <ToggleID, Toggle>();
            Storage.RegisterProjection <ToggleView>();

            var container = new Container(_ =>
            {
                _.IncludeRegistry <MediatrRegistry>();

                _.For <IStorage>().Use(Storage);
                _.For <IStorageSession>().Use(c => c.GetInstance <IStorage>().CreateSession());
                _.For <ILoggerFactory>().Use(Substitute.For <ILoggerFactory>());
                _.For(typeof(ILogger <>)).Use(typeof(Logger <>));
            });

            _mediator = container.GetInstance <IMediator>();
        }
 private EditorID GetEditor() => EditorID.Parse("TestApiUser");         //User.Identity.Name
Esempio n. 16
0
 protected ToggleTest()
 {
     Editor = EditorID.Parse("Testing");
 }
Esempio n. 17
0
 public ToggleViewTests()
 {
     _view   = new ToggleView();
     _editor = EditorID.Parse("editor");
     _id     = ToggleID.CreateNew();
 }
 private Task <ICollection <string> > ValidateMessage() => _validator.Validate(
     new AddToggleConditionRequest(
         EditorID.Parse("test"),
         ToggleLocator.Create("wat"),
         _props
         ));