0

I wrote a shopping cart program in Java with unit test, but when I run the program its giving me an error. What it means cannot find the symbol. Its giving me the following error:

java testShoppingCart.java
testShoppingCart.java:8: error: cannot find symbol
        ShoppingCart obj = new ShoppingCart();
        ^
  symbol:   class ShoppingCart
  location: class testShoppingCart
testShoppingCart.java:8: error: cannot find symbol
        ShoppingCart obj = new ShoppingCart();
                               ^
  symbol:   class ShoppingCart
  location: class testShoppingCart
2 errors
error: compilation failed

Here is my program : The main file: ShoppingCart.java

import java.util.Scanner;
public class ShoppingCart {
    //class representation
    private int itemCount;
    private String[] items = new String[20];
    private int itemRemoved = 0;
    Scanner in = new Scanner(System.in);
    public ShoppingCart() {
    }
    public ShoppingCart(String[] items) {
    this.items = items;
    }

    //methods..
    public void addToCart(String newItem) {
    itemCount++;
    String[] newItems = new String[itemCount];
    for(int i = 0; i < itemCount-1; i++) {
        newItems[i] = items[i];
    }
    newItems[itemCount-1] = newItem;
    items = newItems;
    }

    public void DropFromCart(String dropItem) {
    String[] temp = items;
    for(int i = 0; i < items.length; i++) {
        if(items[i].equals(dropItem)) {
            for(int j =i; j < items.length-1; j++) {
                temp[j] = items[j+1];
            }
            String[] newItems = new String[items.length-1];
            for(int k = 0; k < items.length-1; k++) {
                newItems[k] = temp[k];
            }
            items = newItems;
        }
    }
    itemRemoved++;
    itemCount--;
    }

    public void getItems() {
        System.out.print("List of items : ");
        for(int i=0; i < items.length; i++) {
            System.out.print(items[i] +", ");
        }
        System.out.print("\n");
    }
    
    public int getNoOfItems() {
        return itemCount;
    }
}

The test file: testShoppingCart.java

import java.util.Scanner;

public class testShoppingCart {
    //Main method...
    public static void main(String [] args) {
        //create Scanner object
        Scanner in = new Scanner(System.in);
        ShoppingCart obj = new ShoppingCart();
        
        while(true) {
            //enter item
            System.out.print("Enter the name of the item : ");
            String item;
            item = in.next();
            
            obj.addToCart(item);
            //remove item?
            System.out.print("Any item to remove from cart? y/n ");
            
            char yn = in.next().charAt(0);
            
            if(yn == 'y') {
                //enter item to be removed
                System.out.print("Enter item to remove from cart : ");
                String item1;
                item1 = in.next();
                obj.DropFromCart(item1);
                obj.getItems();
                //Continue shopping or not?
                System.out.println("Continue Shopping? : y/n ");
                char yn2 = in.next().charAt(0);
                if(yn2 == 'y') {
                    continue;
                }
                else if(yn2 == 'n') {
                    //display total items
                    System.out.println("Total items shopped : "+obj.getNoOfItems());
                    System.out.print("Thank You, Please shop again!!!");
                    break;
                }
            }
            else if (yn == 'n') {
                obj.getItems();
                System.out.print("Continue Shopping? : y/n ");
                char yn3 = in.next().charAt(0);
                if(yn3 == 'y') {
                    continue;
                }
                else if(yn3 == 'n') {
                    //total number of items shopped
                    System.out.println("Total items shopped : "+obj.getNoOfItems());
                    System.out.print("Thank You, Please shop again!!!");
                    break;
                }
            }
            else {
                continue;
            }
            
        }
    }
}

Can someone please help me with the error. Thanks in advance!

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
  • 1
    You don't use main methods for unit testing, you use a [test-framework like Junit](https://junit.org/junit5/) – OneCricketeer Jan 24 '22 at 19:01
  • The "fix" here is that you're missing `java -cp .` for adding the `ShoppingCart.class` file to the classpath so that it can be used – OneCricketeer Jan 24 '22 at 19:03

0 Answers0