public void Dump_Succeeds( [Values] ItemType itemType ) { Assert.Multiple(() => { Assert.That(() => _commands.Dump(itemType, "name"), Throws.Nothing); switch (itemType) { case ItemType.BuildDefinition: _buildToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; case ItemType.ReleaseDefinition: _releaseToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; case ItemType.Project: _projectToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; case ItemType.Repository: _repositoryToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; case ItemType.TaskGroup: _taskToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; case ItemType.VariableGroup: _variableToolMock.Verify(x => x.Get(It.IsAny <string>()), Times.Once); break; default: Assert.Fail($"Unexpected Item {itemType}"); break; } }); }