public void AddContainer_2NormalContainers6ValuableContainers1Gap() { // Arrange var mockedValuable = new Mock <IFreightContainer>(); mockedValuable.Setup(mock => mock.Type).Returns(FreightType.Valuable); var mockedNormal = new Mock <IFreightContainer>(); mockedNormal.Setup(mock => mock.Type).Returns(FreightType.Normal); var row = new FreightContainerRow(7); // Act row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddGapsToValuableContainers(); row.AddContainer(mockedNormal.Object); row.AddContainer(mockedNormal.Object); // Assert Assert.AreEqual(1, row.Columns[0].Containers.Length); Assert.AreEqual(2, row.Columns[1].Containers.Length); Assert.AreEqual(1, row.Columns[2].Containers.Length); Assert.AreEqual(0, row.Columns[3].Containers.Length); Assert.AreEqual(1, row.Columns[4].Containers.Length); Assert.AreEqual(2, row.Columns[5].Containers.Length); Assert.AreEqual(1, row.Columns[6].Containers.Length); }
public void GetRequiredNormalContainers_1ValuableNoGaps_0() { // Arrange var mockedValuable = new Mock <IFreightContainer>(); mockedValuable.Setup(mock => mock.Type).Returns(FreightType.Valuable); var row = new FreightContainerRow(1); row.AddContainer(mockedValuable.Object); // Act int required = row.GetRequiredNormalContainers(); // Assert Assert.AreEqual(0, required); }
public void AddContainer_TooManyValuable_ThrowInvalidOperationException() { // Arrange var mockedValuable = new Mock <IFreightContainer>(); mockedValuable.Setup(mock => mock.Type).Returns(FreightType.Valuable); var mockedNormal = new Mock <IFreightContainer>(); mockedNormal.Setup(mock => mock.Type).Returns(FreightType.Normal); var row = new FreightContainerRow(3); // Act row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); row.AddContainer(mockedValuable.Object); }