|
Imports NUnit.Framework
<TestFixture()> _
Public Class GenericTests
<Test()> _
Public Sub TestDrum()
Dim drum As New Drum("Acid", 500, New ContainerSpecification(ContainerFeature.Armored))
Assert.AreEqual("Acid", drum.Chemical)
Assert.AreEqual(500, drum.Size)
Dim container As New Container(10000, ContainerFeature.Armored)
Assert.IsTrue(drum.RequiredContainer.IsSatisfiedBy(container))
End Sub
<Test()> _
Public Sub TestContainer()
Dim container As New Container(10000, ContainerFeature.Armored)
Assert.AreEqual(10000, container.capacity)
Assert.AreEqual(ContainerFeature.Armored, container.Features)
End Sub
<Test()> _
Public Sub TestAddDrumsToContainer()
Dim container As New Container(10000, ContainerFeature.Armored)
Dim acidDrum As New Drum("Acid", 2000, New ContainerSpecification(ContainerFeature.Armored))
container.AddDrum(acidDrum)
Dim tntDrum As New Drum("TNT", 3000, New ContainerSpecification(ContainerFeature.Armored))
container.AddDrum(tntDrum)
Assert.AreEqual(2, container.Drums.Count)
Assert.AreEqual(5000, container.RemainingSpace)
End Sub
<Test()> _
Public Sub CanAccommodate()
Dim container As New Container(10000, ContainerFeature.Armored)
Dim uraniumDrum As New Drum("Uranium", 11000, New ContainerSpecification(ContainerFeature.Armored))
Assert.IsFalse(container.canAccommodate(uraniumDrum))
Dim tntDrum As New Drum("TNT", 9000, New ContainerSpecification(ContainerFeature.Ventilated))
Assert.IsFalse(container.canAccommodate(tntDrum))
Dim sulpherDrum As New Drum("Sulpher", 10000, New ContainerSpecification(ContainerFeature.Armored))
Assert.IsTrue(container.canAccommodate(sulpherDrum))
End Sub
<Test()> _
Public Sub IsSafelyPacked()
Dim container As New Container(10000, ContainerFeature.Armored)
Dim uraniumDrum As New Drum("Uranium", 5000, New ContainerSpecification(ContainerFeature.Armored))
container.AddDrum(uraniumDrum)
Dim sulpherDrum As New Drum("Sulpher", 2000, New ContainerSpecification(ContainerFeature.Armored))
container.AddDrum(sulpherDrum)
Assert.IsTrue(container.isSafelyPacked)
Dim tntDrum As New Drum("TNT", 3000, New ContainerSpecification(ContainerFeature.Ventilated))
container.AddDrum(tntDrum)
Assert.IsFalse(container.isSafelyPacked)
End Sub
<Test()> _
Public Sub CompoundSpecification()
' Create Containers
Dim armoredContainer As New Container(10000, ContainerFeature.Armored)
Dim ventilatedContainer As New Container(10000, ContainerFeature.Ventilated)
Dim armoredAndVentilatedContainer As New Container(10000, ContainerFeature.Armored Or ContainerFeature.Ventilated)
' Create Specifications
Dim armoredSpec As New ContainerSpecification(ContainerFeature.Armored)
Dim ventilatedSpec As New ContainerSpecification(ContainerFeature.Ventilated)
Dim either As ContainerSpecification = armoredSpec Or ventilatedSpec
Dim both As ContainerSpecification = armoredSpec And ventilatedSpec
' Create Drums, using Specifications to define acceptable containers
Dim uraniumDrum As New Drum("Uranium", 5000, either)
Dim tntDrum As New Drum("TNT", 5000, both)
' Test Containers against the acceptable definitions for each Drum
' uranium requires Either
Assert.IsTrue(uraniumDrum.RequiredContainer.IsSatisfiedBy(armoredContainer))
Assert.IsTrue(uraniumDrum.RequiredContainer.IsSatisfiedBy(ventilatedContainer))
' Test Containers against the acceptable definitions for each Drum
' tnt requires both
Assert.IsTrue(tntDrum.RequiredContainer.IsSatisfiedBy(armoredAndVentilatedContainer))
Assert.IsFalse(tntDrum.RequiredContainer.IsSatisfiedBy(armoredContainer))
Assert.IsFalse(tntDrum.RequiredContainer.IsSatisfiedBy(ventilatedContainer))
End Sub
End Class
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.