public void AddOne_NullValueMustThrow_Test()
        {
            //Arrange
            List <string> list = new List <string> {
                "Apple", "Orange"
            };
            AmountOfItems <string> amountOfItems = ListBackedAmountOfItems <string> .Build(list);

            //Act
            amountOfItems.AddOne(null);
            //Asssert execption thrown
        }
        public void AmountOf_IncreasesByOneWhenAddingOne_Test()
        {
            //Arrange
            int                 literalToAdd  = 0;
            List <int>          list          = new List <int>();
            AmountOfItems <int> amountOfItems = ListBackedAmountOfItems <int> .Build(list);

            var equalityOperation = IntEqualityByLiteral.Build();
            int expected          = 1;

            amountOfItems.AddOne(literalToAdd);
            //Act
            int after = amountOfItems.AmountOf(literalToAdd, equalityOperation);

            //Assert
            Assert.AreEqual(expected, after);
        }