public void FarmerCustomConvertTest() { Farmer farmer = new Farmer(1, new Dictionary <string, List <ResourceAmount> >() { { "ore", new List <ResourceAmount>() { new ResourceAmount("ironore", 2), new ResourceAmount("goldore", 3) } }, }, 5); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("ore", 3)); var converted = farmer.Convert(); Assert.Equal(2, converted.Count); Assert.Single(converted.Where(c => c.Type == "ironore")); Assert.Equal(6, converted.Where(c => c.Type == "ironore").Single().Amount); Assert.Single(converted.Where(c => c.Type == "goldore")); Assert.Equal(9, converted.Where(c => c.Type == "goldore").Single().Amount); Assert.Throws <Exception>(() => farmer.AddInput(new ResourceAmount("cow", 1))); Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("pig", 8))); Assert.Throws <Exception>(() => farmer.AddInput(new ResourceAmount("ore", 6))); }
public void FarmerDefaultConvertTest() { Farmer farmer = new Farmer(1, new Dictionary <string, List <ResourceAmount> >() { { "cow", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("milk", 2) } }, { "pig", new List <ResourceAmount>() { new ResourceAmount("meat", 4), } }, { "chicken", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("egg", 2) } }, }, 5); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("cow", 1)); var convertedCow = farmer.Convert(); Assert.Equal(2, convertedCow.Count); Assert.Single(convertedCow.Where(c => c.Type == "meat")); Assert.Equal(2, convertedCow.Where(c => c.Type == "meat").Single().Amount); Assert.Single(convertedCow.Where(c => c.Type == "milk")); Assert.Equal(2, convertedCow.Where(c => c.Type == "milk").Single().Amount); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("pig", 1)); var convertedPig = farmer.Convert(); Assert.Single(convertedPig); Assert.Single(convertedPig.Where(c => c.Type == "meat")); Assert.Equal(4, convertedPig.Where(c => c.Type == "meat").Single().Amount); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("chicken", 1)); var convertedChicken = farmer.Convert(); Assert.Equal(2, convertedChicken.Count); Assert.Single(convertedChicken.Where(c => c.Type == "meat")); Assert.Equal(2, convertedChicken.Where(c => c.Type == "meat").Single().Amount); Assert.Single(convertedChicken.Where(c => c.Type == "egg")); Assert.Equal(2, convertedChicken.Where(c => c.Type == "egg").Single().Amount); Assert.Empty(farmer.Convert()); }
public void FarmerDefaultConvertTest5() { var farmer = new Farmer(1, new Dictionary <string, List <ResourceAmount> >() { { "cow", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("milk", 2) } }, { "pig", new List <ResourceAmount>() { new ResourceAmount("meat", 4), } }, { "chicken", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("egg", 2) } }, }, 5); farmer.AddInput(new ResourceAmount("cow", 2)); farmer.RemoveInput(new ResourceAmount("cow", 1)); var convertedCow = farmer.Convert(); Assert.Equal(2, convertedCow.Count); Assert.Single(convertedCow.Where(c => c.Type == "meat")); Assert.Equal(2, convertedCow.Where(c => c.Type == "meat").Single().Amount); Assert.Single(convertedCow.Where(c => c.Type == "milk")); Assert.Equal(2, convertedCow.Where(c => c.Type == "milk").Single().Amount); Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 1))); }
public void FarmerDefaultConvertTest4() { Farmer farmer = new Farmer(1, new Dictionary <string, List <ResourceAmount> >() { { "cow", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("milk", 2) } }, { "pig", new List <ResourceAmount>() { new ResourceAmount("meat", 4), } }, { "chicken", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("egg", 2) } }, }, 5); Assert.Empty(farmer.Convert()); Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 1))); farmer.AddInput(new ResourceAmount("cow", 1)); Assert.Throws <Exception>(() => farmer.RemoveInput(new ResourceAmount("cow", 2))); }
public void FarmerDefaultConvertTest3() { Farmer farmer = new Farmer(1, new Dictionary <string, List <ResourceAmount> >() { { "cow", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("milk", 2) } }, { "pig", new List <ResourceAmount>() { new ResourceAmount("meat", 4), } }, { "chicken", new List <ResourceAmount>() { new ResourceAmount("meat", 2), new ResourceAmount("egg", 2) } }, }, 5); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("cow", 1)); farmer.AddInput(new ResourceAmount("pig", 1)); farmer.AddInput(new ResourceAmount("chicken", 1)); var converted = farmer.Convert(); Assert.Equal(3, converted.Count); Assert.Single(converted.Where(c => c.Type == "meat")); Assert.Equal(8, converted.Where(c => c.Type == "meat").Single().Amount);//pig->4; cow->2; chick->2 Assert.Single(converted.Where(c => c.Type == "milk")); Assert.Equal(2, converted.Where(c => c.Type == "milk").Single().Amount); Assert.Single(converted.Where(c => c.Type == "egg")); Assert.Equal(2, converted.Where(c => c.Type == "egg").Single().Amount); Assert.Empty(farmer.Convert()); farmer.AddInput(new ResourceAmount("cow", 2)); farmer.AddInput(new ResourceAmount("pig", 2)); farmer.AddInput(new ResourceAmount("chicken", 2)); var converted2 = farmer.Convert(); Assert.Equal(3, converted2.Count); Assert.Single(converted2.Where(c => c.Type == "meat")); Assert.Equal(16, converted2.Where(c => c.Type == "meat").Single().Amount);//pig->4; cow->2; chick->2.. *2 Assert.Single(converted2.Where(c => c.Type == "milk")); Assert.Equal(4, converted2.Where(c => c.Type == "milk").Single().Amount); Assert.Single(converted2.Where(c => c.Type == "egg")); Assert.Equal(4, converted2.Where(c => c.Type == "egg").Single().Amount); Assert.Empty(farmer.Convert()); }