public ArmaBuilder() { _nome = "P90"; _tipo = TiposDeArmas.SMG; _quantidadeDeBalasNoPente = 100; _quantidadeDeBalasRestantesNoPente = 0; }
public void Nao_deve_criar_uma_arma_com_tipo_invalido(TiposDeArmas tipoInvalido) { const string mensagemEsperada = "É necessário informar um tipo válido para a arma."; void Acao() => new Arma(_nome, tipoInvalido, _quantidadeDeBalasNoPente); Assert.Throws <ExcecaoDeDominio <Arma> >(Acao).ComMensagem(mensagemEsperada); }
public Arma(string nomeDaArma, TiposDeArmas tipo, int quantidadeDeBalasNoPente) { ValidarInformacoes(nomeDaArma, tipo, quantidadeDeBalasNoPente); Nome = nomeDaArma; Tipo = tipo; QuantidadeDeBalasNoPente = quantidadeDeBalasNoPente; QuantidadeDeBalasRestantesNoPente = 0; }
private static void ValidarInformacoes(string nomeDaArma, TiposDeArmas tipo, int quantidadeDeBalasNoPente) { var tipoEstaDefinido = Enum.IsDefined(typeof(TiposDeArmas), tipo); Validacoes <Arma> .Criar() .Obrigando(nomeDaArma, "É necessário informar um nome válido para a arma.") .Quando(!tipoEstaDefinido, "É necessário informar um tipo válido para a arma.") .Quando(quantidadeDeBalasNoPente < 0, "É necessário informar uma quantidade válidade de balas no pente.") .DispararSeHouverErros(); }
public ArmaTeste() { _tipoDaArma = TiposDeArmas.SMG; _nome = "P90"; _quantidadeDeBalasNoPente = 100; }
public ArmaBuilder ComTipo(TiposDeArmas tipo) { _tipo = tipo; return(this); }