Skip to content

Commit

Permalink
Finished Bleakwind Buffet Point of Sale Milestone 4
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewfschwartz committed Oct 18, 2020
1 parent 955a671 commit 1b2ddc3
Show file tree
Hide file tree
Showing 23 changed files with 2,584 additions and 56 deletions.
2 changes: 1 addition & 1 deletion Data/Drinks/CandlehearthCoffee.cs
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ public bool Decaf
}
else
{
SpecialInstructions.Remove("Decaf");
specialInstructions.Remove("Decaf");
}
OnPropertyChanged("SpecialInstructions");
}
Expand Down
2 changes: 2 additions & 0 deletions Data/Drinks/SailorSoda.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ public SodaFlavor Flavor
{
flavor = value;
OnPropertyChanged("Flavor");
OnPropertyChanged("SpecialInstructions");
OnPropertyChanged("Name");
}
}

Expand Down
36 changes: 14 additions & 22 deletions Data/Order.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,10 @@ public class Order : ObservableCollection<IOrderItem>
/// <summary>
/// Constructor for an Order
/// </summary>
/// <param name="newOrder">Boolean representing whether this order is new or not. Will be true if user clicked "Finish Order", false if they canceled</param>
public Order(bool newOrder)
public Order()
{
Number = nextOrderNumber;
if (newOrder)
{
nextOrderNumber++;
Number = nextOrderNumber;

}


nextOrderNumber++;
CollectionChanged += CollectionChangedListener;
}

Expand Down Expand Up @@ -113,31 +105,31 @@ public uint Calories
void CollectionChangedListener(object sender, NotifyCollectionChangedEventArgs e)
{

OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
OnPropertyChanged(new PropertyChangedEventArgs("Total"));
OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
//OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
//OnPropertyChanged(new PropertyChangedEventArgs("Total"));
//OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
//OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
switch (e.Action)
{

case NotifyCollectionChangedAction.Add:
foreach (IOrderItem item in e.NewItems)
{
item.PropertyChanged += CollectionItemChangedListener;
//OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
//OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
//OnPropertyChanged(new PropertyChangedEventArgs("Total"));
//OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
OnPropertyChanged(new PropertyChangedEventArgs("Total"));
OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
}
break;
case NotifyCollectionChangedAction.Remove: // If the item is removed from the list, remove the event listener
foreach (IOrderItem item in e.OldItems)
{
item.PropertyChanged -= CollectionItemChangedListener;
//OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
//OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
//OnPropertyChanged(new PropertyChangedEventArgs("Total"));
//OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
OnPropertyChanged(new PropertyChangedEventArgs("Subtotal"));
OnPropertyChanged(new PropertyChangedEventArgs("Tax"));
OnPropertyChanged(new PropertyChangedEventArgs("Total"));
OnPropertyChanged(new PropertyChangedEventArgs("Calories"));
}
break;
case NotifyCollectionChangedAction.Reset: // Big change, start over from scratch
Expand Down
1 change: 1 addition & 0 deletions DataTests/DataTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

<ItemGroup>
<ProjectReference Include="..\Data\Data.csproj" />
<ProjectReference Include="..\PointOfSale\PointOfSale.csproj" />
</ItemGroup>

</Project>
141 changes: 123 additions & 18 deletions DataTests/UnitTests/OrderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public class OrderTests
[Fact]
public void ShouldImplementINotifyPropertyChanged()
{
Assert.IsAssignableFrom <ObservableCollection<IOrderItem>>(new Order(false));
Assert.IsAssignableFrom <ObservableCollection<IOrderItem>>(new Order());
}

/// <summary>
Expand All @@ -33,7 +33,7 @@ public void ShouldImplementINotifyPropertyChanged()
[Fact]
public void SalesTaxRateShouldBeTwelvePercentByDefault()
{
Order o = new Order(false);
Order o = new Order();
Assert.Equal(0.12, o.SalesTaxRate);
}

Expand All @@ -43,7 +43,7 @@ public void SalesTaxRateShouldBeTwelvePercentByDefault()
[Fact]
public void ShouldBeAbleToSetSalesTaxRate()
{
Order o = new Order(false);
Order o = new Order();
o.SalesTaxRate = 0.2;
Assert.Equal(0.2, o.SalesTaxRate);
}
Expand All @@ -54,7 +54,7 @@ public void ShouldBeAbleToSetSalesTaxRate()
[Fact]
public void SubtotalShouldBeZeroByDefault()
{
Order o = new Order(false);
Order o = new Order();
Assert.Equal(0, o.Subtotal);
}

Expand All @@ -64,7 +64,7 @@ public void SubtotalShouldBeZeroByDefault()
[Fact]
public void TotalShouldBeZeroByDefault()
{
Order o = new Order(false);
Order o = new Order();
Assert.Equal(0, o.Total);
}

Expand All @@ -74,14 +74,14 @@ public void TotalShouldBeZeroByDefault()
[Fact]
public void TaxShouldBeZeroByDefault()
{
Order o = new Order(false);
Order o = new Order();
Assert.Equal(0, o.Tax);
}

[Fact]
public void SubtotalShouldBeSumOfOrderItemPrices()
{
Order o = new Order(false);
Order o = new Order();
BriarheartBurger b = new BriarheartBurger();
SailorSoda s = new SailorSoda();
FriedMiraak f = new FriedMiraak();
Expand All @@ -94,7 +94,7 @@ public void SubtotalShouldBeSumOfOrderItemPrices()
[Fact]
public void TaxShouldBeSubtotalTimesTaxRate()
{
Order o = new Order(false);
Order o = new Order();
BriarheartBurger b = new BriarheartBurger();
SailorSoda s = new SailorSoda();
FriedMiraak f = new FriedMiraak();
Expand All @@ -108,7 +108,7 @@ public void TaxShouldBeSubtotalTimesTaxRate()
[Fact]
public void TotalShouldBeSubtotalPlusTax()
{
Order o = new Order(false);
Order o = new Order();
BriarheartBurger b = new BriarheartBurger();
SailorSoda s = new SailorSoda();
FriedMiraak f = new FriedMiraak();
Expand All @@ -127,7 +127,7 @@ public void TotalShouldBeSubtotalPlusTax()
[Fact]
public void CaloriesShouldBeSumOfAllCaloriesInTheOrder()
{
Order o = new Order(false);
Order o = new Order();
BriarheartBurger b = new BriarheartBurger();
SailorSoda s = new SailorSoda();
FriedMiraak f = new FriedMiraak();
Expand All @@ -138,21 +138,126 @@ public void CaloriesShouldBeSumOfAllCaloriesInTheOrder()
}

/// <summary>
/// Makes sure order number is 1 by default
/// Makes sure each consecutive order number increases by one
/// </summary>
[Fact]
public void OrderNumberShouldBeOneByDefault()
public void OrderNumberShouldIncrementWithANewOrder()
{
Order o = new Order(false);
Assert.Equal(1, o.Number);
Order o = new Order();
Order o2 = new Order();
Assert.Equal(1, o2.Number - o.Number);
}

/// <summary>
/// Makes sure adding an item notifies the order subtotal property
/// </summary>
[Fact]
public void OrderNumberShouldIncrementWithANewOrder()
public void AddingItemShouldNotifySubtotalProperty()
{
Order o = new Order();
Assert.PropertyChanged(o, "Subtotal", () =>
{
o.Add(new DoubleDraugr());
});
}

/// <summary>
/// Makes sure adding an item notifies the order tax property
/// </summary>
[Fact]
public void AddingItemShouldNotifyTaxProperty()
{
Order o = new Order();
Assert.PropertyChanged(o, "Tax", () =>
{
o.Add(new DoubleDraugr());
});
}

/// <summary>
/// Makes sure adding an item notifies the order total property
/// </summary>
[Fact]
public void AddingItemShouldNotifyTotalProperty()
{
Order o = new Order();
Assert.PropertyChanged(o, "Total", () =>
{
o.Add(new DoubleDraugr());
});
}

/// <summary>
/// Makes sure adding an item notifies the order calories property
/// </summary>
[Fact]
public void AddingItemShouldNotifyCaloriesProperty()
{
Order o = new Order();
Assert.PropertyChanged(o, "Calories", () =>
{
o.Add(new DoubleDraugr());
});
}

/// <summary>
/// Makes sure changing an item notifies the order subtotal property
/// </summary>
[Fact]
public void ChangingItemShouldNotifySubtotalProperty()
{
Order o = new Order();
SailorSoda s = new SailorSoda();
o.Add(s);
Assert.PropertyChanged(o, "Subtotal", () =>
{
s.Size = Data.Enums.Size.Large;
});
}

/// <summary>
/// Makes sure changing an item notifies the order tax property
/// </summary>
[Fact]
public void ChangingItemShouldNotifyTaxProperty()
{
Order o = new Order(false);
Order o2 = new Order(true);
Assert.Equal(2, o2.Number);
Order o = new Order();
SailorSoda s = new SailorSoda();
o.Add(s);
Assert.PropertyChanged(o, "Tax", () =>
{
s.Size = Data.Enums.Size.Large;
});
}

/// <summary>
/// Makes sure changing an item notifies the order total property
/// </summary>
[Fact]
public void ChangingItemShouldNotifyTotalProperty()
{
Order o = new Order();
SailorSoda s = new SailorSoda();
o.Add(s);
Assert.PropertyChanged(o, "Total", () =>
{
s.Size = Data.Enums.Size.Large;
});
}

/// <summary>
/// Makes sure changing an item notifies the order calories property
/// </summary>
[Fact]
public void ChangingItemShouldNotifyCaloriesProperty()
{
Order o = new Order();
SailorSoda s = new SailorSoda();
o.Add(s);
Assert.PropertyChanged(o, "Calories", () =>
{
s.Size = Data.Enums.Size.Large;
});
}
}
}
Loading

0 comments on commit 1b2ddc3

Please sign in to comment.