Example #1
0
        public Task AddMenuItemsShouldReturnProperHypermediaLinks(AddMenuItems command, Fixture fixture) =>
        _apiHelper.InTheContextOfAManager(
            manager => async client =>
        {
            // Act
            var response = await client
                           .PostAsJsonAsync(MenuRoute("items"), command);

            // Assert
            var expectedLinks = new List <string>
            {
                LinkNames.Self,
                LinkNames.Menu.GetAllMenuItems
            };

            var resource = await response.ShouldBeAResource <AddMenuItemsResource>(expectedLinks);
        },
            fixture);
        public async Task CannotAddConflictingMenuItemsWhenSomeAreConflicting(AddMenuItems command)
        {
            // Arrange
            await _fixture.SendAsync(command);

            var commandToTest = new AddMenuItems
            {
                // Purposefully taking only the first item
                MenuItems = new List <MenuItemView> {
                    command.MenuItems.First()
                }
            };

            // Act
            var result = await _fixture.SendAsync(commandToTest);

            // Assert
            result.ShouldHaveErrorOfType(ErrorType.Conflict);
        }
Example #3
0
        void ShowAddMenu(Rect rect, ReorderableList lst)
        {
            var menu = new GenericMenu();

            TypeUtility.PopulateMenuWithCreateItems(menu, m_AddType, type =>
            {
                var element = serializedProperty.AddArrayElement();
                element.managedReferenceValue = CreateNewInstance(type);
                serializedProperty.serializedObject.ApplyModifiedProperties();
            }, RequiredAttribute);

            AddMenuItems?.Invoke(menu);

            if (menu.GetItemCount() == 0 && NoItemMenuItem != null)
            {
                menu.AddDisabledItem(NoItemMenuItem);
            }

            menu.ShowAsContext();
        }
        public async Task CanAddMenuItems(MenuItemView[] itemsToAdd)
        {
            // Arrange
            var command = new AddMenuItems
            {
                MenuItems = itemsToAdd
            };

            // Act
            var result = await _fixture.SendAsync(command);

            // Assert
            var itemsInDb = await _fixture.ExecuteDbContextAsync(dbContext => dbContext
                                                                 .MenuItems
                                                                 .ToListAsync());

            itemsInDb.ShouldAllBe(i => itemsToAdd.Any(addedItem =>
                                                      i.Number == addedItem.Number &&
                                                      i.Description == addedItem.Description &&
                                                      i.Price == addedItem.Price));
        }
Example #5
0
        void ShowAddMenu(Rect rect, ReorderableList lst)
        {
            var menu = new GenericMenu();

            var foundTypes = TypeCache.GetTypesDerivedFrom(m_AddType);

            for (int i = 0; i < foundTypes.Count; ++i)
            {
                var type = foundTypes[i];

                if (type.IsAbstract)
                {
                    continue;
                }

                if (RequiredAttribute != null && !Attribute.IsDefined(type, RequiredAttribute))
                {
                    continue;
                }

                menu.AddItem(new GUIContent(ObjectNames.NicifyVariableName(type.Name)), false, () =>
                {
                    var element = serializedProperty.AddArrayElement();
                    element.managedReferenceValue = CreateNewInstance(type);
                    serializedProperty.serializedObject.ApplyModifiedProperties();
                });
            }

            AddMenuItems?.Invoke(menu);

            if (menu.GetItemCount() == 0 && NoItemMenuItem != null)
            {
                menu.AddDisabledItem(NoItemMenuItem);
            }

            menu.ShowAsContext();
        }
Example #6
0
        public Task GetMenuItemsShouldReturnProperHypermediaLinksWhenLoggedInAsAManager(AddMenuItems command, Fixture fixture) =>
        _apiHelper.InTheContextOfAManager(
            manager => async client =>
        {
            // Arrange
            await _fixture.SendAsync(command);

            // Act
            var response = await client
                           .GetAsync(MenuRoute("items"));

            // Assert
            var expectedLinks = new List <string>
            {
                LinkNames.Self
            };

            var resource = await response.ShouldBeAResource <MenuItemsContainerResource>(expectedLinks);

            var expectedMenuItemLinks = new List <string>
            {
                LinkNames.Menu.AddMenuItem
            };

            resource.Items.ShouldAllBe(i => i.Links.All(l => expectedMenuItemLinks.Contains(l.Key)));
        },
            fixture);
Example #7
0
 public async Task <IActionResult> AddMenuItems([FromBody] AddMenuItems command) =>
 (await Mediator.Send(command)
  .MapAsync(ToEmptyResourceAsync <AddMenuItemsResource>))
 .Match(Ok, Error);