Olá pessoal! Estou testando um pouco meus conhecimentos tentando criar um sisteminha de vendas em que tenho uma classe Mercadoria e uma classe Venda. Ao testar uma venda recebo um Null Pointer Exception no método extrato(), que deveria imprimir os dados do objeto mercadoria e da venda. Abaixo estão as classes e minha classe main. Eu compreendo que o método não está apontando para o objeto Mercadoria criado na venda, mas não consegui entender o que estou fazendo errado! Alguém pode dar uma ajuda? Valeu!
public class Mercadoria {
    private String codigo;
    private String tipo;
    private String nome;
    private double quantidade;
    private double preco;
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
    public String getTipo() {
        return tipo;
    }
    public void setTipo(String tipo) {
        this.tipo = tipo;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public double getQuantidade() {
        return quantidade;
    }
    public void setQuantidade(double quantidade) {
        this.quantidade = quantidade;
    }
    public double getPreco() {
        return preco;
    }
    public void setPreco(double preco) {
        this.preco = preco;
    }
    public String getCodigo(){
        return this.codigo;
    }
}public class Venda {
    private double valorTotal;
    private double unidades;
    private Mercadoria mercadoria;
    public Venda(Mercadoria mercadoria, double unidades) {
    }
    public void venda(double unidades) {
        this.valorTotal = unidades * this.mercadoria.getPreco();
        this.mercadoria.setQuantidade(unidades -= this.mercadoria.getQuantidade());
    }
    public void extrato() {
        System.out.println("Extrato de venda: ");
        System.out.println("Produto: " + this.mercadoria.getNome());
        System.out.println("Código do produto: " + this.mercadoria.getCodigo());
        System.out.println("tipo: " + this.mercadoria.getTipo());
        System.out.println("quantidade: " + this.unidades);
        System.out.println("Valor da transação: " + this.valorTotal);
    }
}Main:
public class TesteTrasacao {
    public static void main(String[] args){
        Mercadoria chuveiro = new Mercadoria();
        chuveiro.setNome("Chuveiro");
        chuveiro.setPreco(10);
        Venda v1 = new Venda(chuveiro, 5);
        v1.extrato();    
    }
} 
            