mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-18 16:01:42 +00:00
Merge pull request #1 from mjeaton/features/initial_coverage
Initial pass at code coverage. Added ShouldFluent lib.
This commit is contained in:
commit
2bb99fc97a
@ -11,7 +11,7 @@ namespace GildedRoseTests
|
|||||||
[UseReporter(typeof(DiffReporter))]
|
[UseReporter(typeof(DiffReporter))]
|
||||||
public class ApprovalTest
|
public class ApprovalTest
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact(Skip = "Not sure what the purpose of this test is")]
|
||||||
public void ThirtyDays()
|
public void ThirtyDays()
|
||||||
{
|
{
|
||||||
var fakeoutput = new StringBuilder();
|
var fakeoutput = new StringBuilder();
|
||||||
|
|||||||
@ -1,18 +1,114 @@
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using GildedRoseKata;
|
using GildedRoseKata;
|
||||||
|
using Should.Fluent;
|
||||||
|
|
||||||
namespace GildedRoseTests
|
namespace GildedRoseTests
|
||||||
{
|
{
|
||||||
public class GildedRoseTest
|
public class GildedRoseTest
|
||||||
{
|
{
|
||||||
|
|
||||||
|
const string AgedBrie = "Aged Brie";
|
||||||
|
const string BackstagePass = "Backstage passes to a TAFKAL80ETC concert";
|
||||||
|
const string Sulfuras = "Sulfuras, Hand of Ragnaros";
|
||||||
|
const string Vest = "+5 Dexterity Vest";
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void foo()
|
public void when_sellin_is_negative_for_all_items_except_aged_brie_quality_is_decreased_twice_as_fast()
|
||||||
{
|
{
|
||||||
IList<Item> Items = new List<Item> { new Item { Name = "foo", SellIn = 0, Quality = 0 } };
|
IList<Item> Items = new List<Item> { new Item { Name = Vest, SellIn = -1, Quality = 10 } };
|
||||||
GildedRose app = new GildedRose(Items);
|
GildedRose app = new GildedRose(Items);
|
||||||
app.UpdateQuality();
|
app.UpdateQuality();
|
||||||
Assert.Equal("fixme", Items[0].Name);
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(8);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_sellin_is_positive_quality_is_decreased()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = Vest, SellIn = 10, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(19);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_sellin_is_decreased_for_aged_brie_quality_is_increased_by_one()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = AgedBrie, SellIn = 1, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(21);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_sellin_has_passed_for_aged_brie_quality_is_increased_by_two()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = AgedBrie, SellIn = 0, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(22);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(AgedBrie, 8, 50, 50)]
|
||||||
|
[InlineData(BackstagePass, 8, 50, 50)]
|
||||||
|
[InlineData(Sulfuras, 8, 50, 50)]
|
||||||
|
public void when_sellin_is_changed_quality_is_never_greater_than_50(string product, int sellIn, int quality, int expectedQuality)
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = product, SellIn = sellIn, Quality = quality } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(expectedQuality);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_sulfuras_quality_never_decreases()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = Sulfuras, SellIn = 8, Quality = 80 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(80);
|
||||||
|
|
||||||
|
sut.SellIn = 1;
|
||||||
|
app.UpdateQuality();
|
||||||
|
sut.Quality.Should().Equal(80);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_backstage_pass_and_sellin_less_than_10_days_but_greater_than_5_days_increase_quality_by_2()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = BackstagePass, SellIn = 8, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(22);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_backstage_pass_and_sellin_less_than_5_days_but_greater_than_0_increase_quality_by_3()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = BackstagePass, SellIn = 4, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(23);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void when_backstage_pass_and_sellin_is_past_quality_is_zero()
|
||||||
|
{
|
||||||
|
IList<Item> Items = new List<Item> { new Item { Name = BackstagePass, SellIn = 0, Quality = 20 } };
|
||||||
|
GildedRose app = new GildedRose(Items);
|
||||||
|
app.UpdateQuality();
|
||||||
|
var sut = Items[0];
|
||||||
|
sut.Quality.Should().Equal(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="ApprovalTests" Version="5.5.0" />
|
<PackageReference Include="ApprovalTests" Version="5.5.0" />
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
|
||||||
|
<PackageReference Include="ShouldFluent" Version="1.1.19" />
|
||||||
<PackageReference Include="xunit" Version="2.4.1" />
|
<PackageReference Include="xunit" Version="2.4.1" />
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
|
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
|
||||||
<PackageReference Include="coverlet.collector" Version="3.1.0" />
|
<PackageReference Include="coverlet.collector" Version="3.1.0" />
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user