From dcb879fa1ff6f73bae517d037d254890efa685c9 Mon Sep 17 00:00:00 2001 From: Mohammad Salah Date: Wed, 11 Jun 2025 09:53:12 +0400 Subject: [PATCH] add tests --- dart/test/gilded_rose_test.dart | 140 ++++++++++++++++++++++++++++++-- 1 file changed, 134 insertions(+), 6 deletions(-) diff --git a/dart/test/gilded_rose_test.dart b/dart/test/gilded_rose_test.dart index 69e4a489..64a9a0e2 100644 --- a/dart/test/gilded_rose_test.dart +++ b/dart/test/gilded_rose_test.dart @@ -2,12 +2,140 @@ import 'package:test/test.dart'; import 'package:gilded_rose/gilded_rose.dart'; main() { - test('foo', () { - var item = new Item('foo', 0, 0); - var items = [item]; - - GildedRose app = new GildedRose(items); + test('foo item', () { + GildedRose app = GildedRose([Item('foo', 0, 0)]); app.updateQuality(); - expect("fixme", app.items[0].name); + var item = app.items[0]; + + expect(item.quality, 0); + expect(item.sellIn, -1); + expect(item.name, "bar"); + }); + + test('+5 Dexterity Vest', () { + GildedRose app = GildedRose([Item('+5 Dexterity Vest', 10, 20)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 9); + expect(item.quality, 19); + expect(item.name, '+5 Dexterity Vest'); + }); + + test('Aged Brie', () { + GildedRose app = GildedRose([Item('Aged Brie', 2, 0)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 1); + expect(item.quality, 1); + expect(item.name, 'Aged Brie'); + }); + + test('Elixir of the Mongoose', () { + GildedRose app = GildedRose([Item('Elixir of the Mongoose', 5, 7)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 4); + expect(item.quality, 6); + expect(item.name, 'Elixir of the Mongoose'); + }); + + test('Sulfuras, Hand of Ragnaros', () { + GildedRose app = GildedRose([Item('Sulfuras, Hand of Ragnaros', 0, 80)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 0); + expect(item.quality, 80); + expect(item.name, 'Sulfuras, Hand of Ragnaros'); + }); + + test('Sulfuras, Hand of Ragnaros - 2', () { + GildedRose app = GildedRose([Item('Sulfuras, Hand of Ragnaros', -1, 80)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, -1); + expect(item.quality, 80); + expect(item.name, 'Sulfuras, Hand of Ragnaros'); + }); + + test('Backstage passes to a TAFKAL80ETC concert', () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 15, 20)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 14); + expect(item.quality, 21); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Backstage passes to a TAFKAL80ETC concert - 2', () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 10, 49)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 9); + expect(item.quality, 50); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Backstage passes to a TAFKAL80ETC concert - 3', () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 5, 49)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 4); + expect(item.quality, 50); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Backstage passes to a TAFKAL80ETC concert - quality capped', () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 5, 50)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 4); + expect(item.quality, 50); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Backstage passes to a TAFKAL80ETC concert - value increase by two', () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 9, 20)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 8); + expect(item.quality, 22); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Backstage passes to a TAFKAL80ETC concert - value increase by three', + () { + GildedRose app = + GildedRose([Item('Backstage passes to a TAFKAL80ETC concert', 5, 20)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 4); + expect(item.quality, 23); + expect(item.name, 'Backstage passes to a TAFKAL80ETC concert'); + }); + + test('Conjured Mana Cake', () { + GildedRose app = GildedRose([Item('Conjured Mana Cake', 3, 6)]); + app.updateQuality(); + var item = app.items[0]; + + expect(item.sellIn, 2); + expect(item.quality, 4); + expect(item.name, 'Conjured Mana Cake'); }); }