public void EqualsDoesNotMatchNonBuildingBlockName()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test");

            // Assert
            Assert.IsFalse(name1.Equals("dummystring"), "Should not be equal");
        }
        public void EqualsDoesNotMatchNull()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test");

            // Assert
            Assert.IsFalse(name1.Equals(null), "Should not be equal");
        }
        public void EqualsDoesNotMatchTwoDifferentLevelsForSameName()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test", 1);
            BuildingBlockName name2 = new BuildingBlockName("Test", 2);

            // Assert
            Assert.IsFalse(name1.Equals(name2), "Should not be equal");
        }
        public void EqualsMatchesTwoLevelSpecificNamesCaseInsensitively()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test", 1);
            BuildingBlockName name2 = new BuildingBlockName("test", 1);

            // Assert
            Assert.IsTrue(name1.Equals(name2), "Should be equal");
        }
        public void EqualsDoesNotMatchTwoDifferentNonLevelSpecificNames()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test");
            BuildingBlockName name2 = new BuildingBlockName("Test2");

            // Assert
            Assert.IsFalse(name1.Equals(name2), "Should not be equal");
        }
        public void EqualsMatchesTwoNonLevelSpecificNames()
        {
            // Arrange
            BuildingBlockName name1 = new BuildingBlockName("Test");
            BuildingBlockName name2 = new BuildingBlockName("Test");

            // Assert
            Assert.IsTrue(name1.Equals(name2), "Should be equal");
        }