public void Be_a_ValueType()
        {
            var suggestion = new ShowSuggestion("3", 7, PricingCategoryRequested.Second,
                                                SeatFactory.BuildSeats(PricingCategory.Second, "A1", "A2"));
            var sameSuggestion = new ShowSuggestion("3", 7, PricingCategoryRequested.Second,
                                                    SeatFactory.BuildSeats(PricingCategory.Second, "A1", "A2"));

            Check.That(sameSuggestion).IsEqualTo(suggestion);

            var sameSuggestionButWithPriceUpdated = suggestion.ComputePrice(new PricingMatrix(100, 80, 50));

            Check.That(sameSuggestion).IsEqualTo(suggestion);
        }
        public void Be_a_ValueType()
        {
            var showId = "7";
            var suggestionFirstCat1 = new ShowSuggestion(showId, 2, PricingCategoryRequested.First,
                                                         SeatFactory.BuildSeats(PricingCategory.Second, "A1", "A2"));
            var suggestionFirstCat2 = new ShowSuggestion(showId, 2, PricingCategoryRequested.First,
                                                         SeatFactory.BuildSeats(PricingCategory.Second, "A1", "A2"));
            var suggestionSecondCat = new ShowSuggestion(showId, 2, PricingCategoryRequested.Second,
                                                         SeatFactory.BuildSeats(PricingCategory.Second, "B5", "B6"));

            var partyRequested = 2;

            var showSuggestionsMade = new ShowSuggestionsMade(showId, partyRequested,
                                                              new List <ShowSuggestion> {
                suggestionFirstCat1, suggestionFirstCat2
            },
                                                              new List <ShowSuggestion> {
                suggestionSecondCat
            },
                                                              new List <ShowSuggestion>(),
                                                              new List <ShowSuggestion>());

            var sameShowSuggestionsMade = new ShowSuggestionsMade(showId, partyRequested,
                                                                  new List <ShowSuggestion> {
                suggestionFirstCat1, suggestionFirstCat2
            },
                                                                  new List <ShowSuggestion> {
                suggestionSecondCat
            },
                                                                  new List <ShowSuggestion>(),
                                                                  new List <ShowSuggestion>());

            Check.That(sameShowSuggestionsMade).IsEqualTo(showSuggestionsMade);

            var suggestionsMadeWithPrices = showSuggestionsMade.ComputePrices(new PricingMatrix(100, 80, 40));

            Check.That(sameShowSuggestionsMade).IsEqualTo(showSuggestionsMade);
            Check.That(sameShowSuggestionsMade).IsNotEqualTo(suggestionsMadeWithPrices);
        }