From b65eca8356b8c7b975cc337cf11e2b73ee3342f1 Mon Sep 17 00:00:00 2001 From: David Underwood Date: Tue, 21 Jul 2026 09:39:05 -0400 Subject: [PATCH] Basic Product class --- product.rb | 19 +++++++++++++++++++ test/product_test.rb | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 product.rb create mode 100644 test/product_test.rb diff --git a/product.rb b/product.rb new file mode 100644 index 0000000..d8faac1 --- /dev/null +++ b/product.rb @@ -0,0 +1,19 @@ +class Product + def initialize(price: 0.00, id:, description: '') + @price = price + @id = id + @description = description + end + + def price + @price + end + + def id + @id + end + + def description + @description + end +end diff --git a/test/product_test.rb b/test/product_test.rb new file mode 100644 index 0000000..84cd496 --- /dev/null +++ b/test/product_test.rb @@ -0,0 +1,18 @@ +require "minitest/autorun" + +require "product.rb" + +class ProductTest < Minitest::Test + def test_that_missing_id_raises_an_error + assert_raises ArgumentError do + Product.new() + end + end + + def test_that_initializing_a_product_sets_instance_variables + product = Product.new(id: 'PICO2', price: 4.00) + + assert_equal 'PICO2', product.id + assert_equal 4.00, product.price + end +end