Exemplo n.º 1
0
        public async Task CanCloseTabWithTip(Guid tabId, int tableNumber, MenuItem[] menuItemsToOrder)
        {
            // Arrange
            await _helper.AddMenuItems(menuItemsToOrder);

            await _helper.OpenTabOnTable(tabId, tableNumber);

            await _helper.ServeMenuItems(tabId, menuItemsToOrder);

            var expectedTipAmount = 100;

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = menuItemsToOrder.Sum(i => i.Price) + expectedTipAmount
            };

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

            // Assert
            await _helper.AssertTabExists(
                closeTabCommand.TabId,
                t => t.IsOpen == false &&
                t.TipValue == expectedTipAmount);
        }
Exemplo n.º 2
0
        public Task CloseTabShouldReturnProperHypermediaLinks(Guid tabId, MenuItem[] menuItems, Fixture fixture) =>
        _apiHelper.InTheContextOfAWaiter(
            waiter => async httpClient =>
        {
            // Arrange
            await _tabHelper.AddMenuItems(menuItems);

            var tableNumber = waiter.ServedTables[0].Number;

            await _tabHelper.OpenTabOnTable(tabId, tableNumber);
            await _tabHelper.OrderMenuItems(tabId, menuItems);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = menuItems.Sum(i => i.Price)
            };

            // Act
            var response = await httpClient
                           .PutAsJsonAsync(TabRoute("close"), closeTabCommand);

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

            await response.ShouldBeAResource <CloseTabResource>(expectedLinks);
        },
            fixture);
Exemplo n.º 3
0
 public void Close()
 {
     CloseTab?.Invoke(this, new CloseTabEventArgs(Kfi)
     {
         LeaveOpen = Kfi.ParentKfi != null
     });
 }
Exemplo n.º 4
0
        public async Task CannotOrderItemsOnAClosedTab(
            Guid tabId,
            int tableNumber,
            MenuItem[] itemsToOrder)
        {
            // Arrange
            await _helper.AddMenuItems(itemsToOrder);

            await _helper.OpenTabOnTable(tabId, tableNumber);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = 0
            };

            await _fixture.SendAsync(closeTabCommand);

            var orderItemsCommand = new OrderMenuItems
            {
                TabId       = tabId,
                ItemNumbers = itemsToOrder.Select(i => i.Number).ToList()
            };

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

            // Assert
            result.ShouldHaveErrorOfType(ErrorType.Validation);
        }
Exemplo n.º 5
0
        public void CloseTab(IntPtr ieHandle, string tabCaptionToClose)
        {
            AccessibleObjectFromWindow(GetDirectUIHWND(ieHandle), OBJID.OBJID_WINDOW, ref accessible);
            if (accessible == null)
            {
                throw new Exception();
            }

            var ieDirectUIHWND = new IEAccessible(ieHandle);

            foreach (IEAccessible accessor in ieDirectUIHWND.Children)
            {
                foreach (var child in accessor.Children)
                {
                    foreach (var tab in child.Children)
                    {
                        if (tab.Name == tabCaptionToClose)
                        {
                            foreach (var CloseTab in tab.Children)
                            {
                                CloseTab.Activate();
                            }
                            return;
                        }
                    }
                }
            }
        }
Exemplo n.º 6
0
        public async Task CanCloseTab(Guid tabId)
        {
            // Arrange
            await OpenTab(tabId);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = 10.0m
            };

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

            // Assert
            result.HasValue.ShouldBeTrue();

            await AssertTabExists(
                tabId,
                t => t.Id == tabId &&
                t.IsOpen == false &&
                t.TotalPaid == closeTabCommand.AmountPaid &&
                // We haven't ordered anything, therefore we expect the full price to be counted as a tip
                t.TipValue == closeTabCommand.AmountPaid);
        }
        private Task Add(Command command)
        {
            switch (command)
            {
            case Command.ToggleWindow:
                return(ToggleWindow.Add());

            case Command.NextTab:
                return(NextTab.Add());

            case Command.PreviousTab:
                return(PreviousTab.Add());

            case Command.NewTab:
                return(NewTab.Add());

            case Command.CloseTab:
                return(CloseTab.Add());

            case Command.NewWindow:
                return(NewWindow.Add());

            case Command.ShowSettings:
                return(ShowSettings.Add());

            case Command.Copy:
                return(Copy.Add());

            case Command.Paste:
                return(Paste.Add());
            }

            return(Task.CompletedTask);
        }
Exemplo n.º 8
0
        public void CloseTab(IntPtr ieHandle, int tabIndexToClose)
        {
            AccessibleObjectFromWindow(GetDirectUIHWND(ieHandle), OBJID.OBJID_WINDOW, ref accessible);
            if (accessible == null)
            {
                throw new Exception();
            }

            var ieDirectUIHWND = new IEAccessible(ieHandle);

            foreach (IEAccessible accessor in ieDirectUIHWND.Children)
            {
                foreach (var child in accessor.Children)
                {
                    foreach (var tab in child.Children)
                    {
                        object tabIndex = tab.accessible.get_accState(0);

                        if ((int)tabIndex == tabIndexToClose)
                        {
                            foreach (var CloseTab in tab.Children)
                            {
                                CloseTab.Activate();
                            }
                            return;
                        }
                    }
                }
            }
        }
Exemplo n.º 9
0
        public Task GetTabHistoryShouldReturnProperHypermediaLinks(Fixture fixture) =>
        _apiHelper.InTheContextOfAWaiter(
            waiter => async httpClient =>
        {
            // Arrange
            var openTabCommand = new OpenTab
            {
                Id           = Guid.NewGuid(),
                CustomerName = "Some customer",
                TableNumber  = waiter.ServedTables[0].Number
            };

            var closeTabCommand = new CloseTab
            {
                TabId      = openTabCommand.Id,
                AmountPaid = 0
            };

            await _fixture.SendAsync(openTabCommand);
            await _fixture.SendAsync(closeTabCommand);

            // Act
            var response = await httpClient.GetAsync(TabRoute("history"));

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

            var resource = await response.ShouldBeAResource <TabsContainerResource>(expectedLinks);
            resource.Items.ShouldAllBe(r => r.Links.Count > 0);
        },
            fixture);
Exemplo n.º 10
0
        public async Task CloseTab(Guid tabId, decimal amountPaid)
        {
            var command = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = amountPaid
            };

            await _fixture.SendAsync(command);
        }
 public IEnumerable <dynamic> Handle(CloseTab c)
 {
     yield return(new TabClosed
     {
         Id = c.Id,
         AmountPaid = c.AmountPaid,
         OrderValue = this.servedItemsValue,
         TipValue = c.AmountPaid - this.servedItemsValue
     });
 }
Exemplo n.º 12
0
 public void refreshColor()
 {
     if (!bgTab)
     {
         bg.Background = color;
     }
     else
     {
         bg.Background = Brushes.Transparent;
         CloseTab.ImageSource("close_Tab.png");
     }
 }
Exemplo n.º 13
0
        public async Task CannotCloseATabTwice(Guid tabId, int tableNumber)
        {
            // Arrange
            await _helper.OpenTabOnTable(tabId, tableNumber);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = 0 // This should be OK as we haven't ordered anything
            };

            await _fixture.SendAsync(closeTabCommand);

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

            // Assert
            result.ShouldHaveErrorOfType(ErrorType.Validation);
        }
Exemplo n.º 14
0
 public void CloseIETab(string tabCaptionToClose)
 {
     foreach (Accessible accessor in Children)
     {
         foreach (var child in accessor.Children)
         {
             foreach (var tab in child.Children)
             {
                 if (tab.Name == tabCaptionToClose)
                 {
                     foreach (var CloseTab in tab.Children)
                     {
                         CloseTab.Activate();
                     }
                     return;
                 }
             }
         }
     }
 }
Exemplo n.º 15
0
        public async Task CanCloseTabWithoutTip(Guid tabId, int tableNumber)
        {
            // Arrange
            await _helper.OpenTabOnTable(tabId, tableNumber);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = 0 // This should be OK as we haven't ordered anything
            };

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

            // Assert
            await _helper.AssertTabExists(
                closeTabCommand.TabId,
                t => t.IsOpen == false &&
                t.TipValue == 0);
        }
Exemplo n.º 16
0
        public Tab(string title, MainWindow mw, UserControl uc, System.Windows.Media.Brush brush)
        {
            Dispatcher.BeginInvoke((Action)(() =>
            {
                darkColor = false;
                InitializeComponent();
                form = uc;
                color = brush;
                actualForeground = Brushes.Black;
                form.HorizontalAlignment = HorizontalAlignment.Stretch;
                form.VerticalAlignment = VerticalAlignment.Stretch;
                label_TabTitle.Content = title;
                Loaded += Tab_Loaded;
                mainWindow = mw;
                closeTabMargin = 8;
                favIconMargin = 6;
                CloseTab.ImageSource("close_Tab.png");

                CloseTab.SetImageScale(8);
                CloseTab.SetRippleMargin(1);
            }));
        }
Exemplo n.º 17
0
        public async Task CannotPayLessThanOwed(Guid tabId, int tableNumber, MenuItem[] menuItemsToOrder)
        {
            // Arrange
            await _helper.AddMenuItems(menuItemsToOrder);

            await _helper.OpenTabOnTable(tabId, tableNumber);

            await _helper.OrderMenuItems(tabId, menuItemsToOrder);

            await _helper.ServeMenuItems(tabId, menuItemsToOrder);

            var closeTabCommand = new CloseTab
            {
                TabId      = tabId,
                AmountPaid = menuItemsToOrder.Sum(i => i.Price) - 1 // Will always be less than the price of the items
            };

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

            // Assert
            result.ShouldHaveErrorOfType(ErrorType.Validation);
        }
Exemplo n.º 18
0
 public async Task <IActionResult> CloseTab([FromBody] CloseTab command) =>
 (await Mediator.Send(command)
  .MapAsync(_ => ToEmptyResourceAsync <CloseTabResource>(x => x.TabId = command.TabId)))
 .Match(Ok, Error);
Exemplo n.º 19
0
 public Task <Option <Unit, Error> > Handle(CloseTab request, CancellationToken cancellationToken) =>
 ValidateCommandIsNotEmpty(request).FlatMapAsync(command =>
                                                 GetTabIfNotClosed(command.TabId, cancellationToken).
                                                 FilterAsync(async tab => command.AmountPaid >= tab.ServedItemsValue, Errors.Tab.TriedToPayLessThanTheBill).MapAsync(tab =>
                                                                                                                                                                     PublishEvents(tab.Id, tab.CloseTab(command.AmountPaid))));
Exemplo n.º 20
0
 public void closeTab(string url)
 {
     CloseTab?.Invoke(this, new StringMessageEventArgs {
         Message = url
     });
 }