public void ApurarVotos_QtdaElegiveisMenorQueDimensionamento_RetornaApuracao() { var ciclo = Factories.CriarCicloValido(); var periodo = new Periodo(new DateTime(2020, 1, 1), new DateTime(2020, 1, 2)); var votacao = new VotacaoFake(periodo, ciclo, new Dimensionamento(2, 1)); var grupo = new Grupo("Grupo 1"); ciclo.AdicionarGrupo(grupo); votacao.IniciarVotacao(); for (var i = 1; i <= 4; i++) { var usuario = new Usuario($"1231231231{i}", new string(i.ToString()[0], 4), $"Usuário {i}", $"Cargo {i}", $"Área {i}", ciclo.Empresa); var associado = new Associado(usuario, grupo, 10, "1234"); ciclo.AdicionarAssociado(associado); } var elegivelRetornado = votacao.AdicionarElegivel(ciclo.Associados.ElementAt(2)); Assert.Collection(votacao.ApurarVotos(grupo), elegivel => { Assert.Equal(elegivelRetornado, elegivel); Assert.Equal(30, elegivel.Pontuacao); Assert.Equal(EApuracao.Eleito, elegivel.Apuracao); }); }
public void ApurarVotos_VotacaoNaoIniciada_ThrowsCustomException() { var ciclo = Factories.CriarCicloValido(); var periodo = new Periodo(new DateTime(2020, 1, 1), new DateTime(2020, 1, 2)); var votacao = new VotacaoFake(periodo, ciclo); var grupo = new Grupo("Grupo 1"); ciclo.AdicionarGrupo(grupo); var usuario = new Usuario("12312312312", "111", "Usuário 1", "Cargo 1", "Área 1", ciclo.Empresa); var associado = new Associado(usuario, grupo, 10, "1234"); ciclo.AdicionarAssociado(associado); votacao.AdicionarElegivel(associado); var exception = Assert.Throws <CustomException>(() => votacao.ApurarVotos(grupo)); Assert.Equal("Não é possível fazer a apuração dos votos antes do início da votação.", exception.Message); }
public void ApurarVotos_GrupoValido_RetornaApuracao() { var ciclo = Factories.CriarCicloValido(); var periodo = new Periodo(new DateTime(2020, 1, 1), new DateTime(2020, 1, 2)); var votacao = new VotacaoFake(periodo, ciclo, new Dimensionamento(2, 1)); var grupo = new Grupo("Grupo 1"); ciclo.AdicionarGrupo(grupo); var usuario1 = new Usuario("12312312312", "111", "Usuário 1", "Cargo 1", "Área 1", ciclo.Empresa); var associado1 = new Associado(usuario1, grupo, 10, "1234"); ciclo.AdicionarAssociado(associado1); var usuario2 = new Usuario("12312312311", "222", "Usuário 2", "Cargo 2", "Área 2", ciclo.Empresa); var associado2 = new Associado(usuario2, grupo, 11, "1234"); ciclo.AdicionarAssociado(associado2); var elegivel1 = votacao.AdicionarElegivel(associado1); var elegivel2 = votacao.AdicionarElegivel(associado2); votacao.IniciarVotacao(); elegivel1.RegistrarVoto(); elegivel1.RegistrarVoto(); elegivel2.RegistrarVoto(); Assert.Collection(votacao.ApurarVotos(grupo), elegivel => { Assert.Equal(elegivel2, elegivel); Assert.Equal(34, elegivel.Pontuacao); Assert.Equal(EApuracao.Eleito, elegivel.Apuracao); }, elegivel => { Assert.Equal(elegivel1, elegivel); Assert.Equal(32, elegivel.Pontuacao); Assert.Equal(EApuracao.NaoEleito, elegivel.Apuracao); }); }
public void ApurarVotos_NenhumElegivelNoGrupo_RetornaListaVazia() { var ciclo = Factories.CriarCicloValido(); var periodo = new Periodo(new DateTime(2020, 1, 1), new DateTime(2020, 1, 2)); var votacao = new VotacaoFake(periodo, ciclo); var grupo = new Grupo("Grupo 1"); ciclo.AdicionarGrupo(grupo); var usuario = new Usuario("12312312312", "111", "Usuário 1", "Cargo 1", "Área 1", ciclo.Empresa); var associado = new Associado(usuario, grupo, 10, "1234"); ciclo.AdicionarAssociado(associado); var elegivelRetornado = votacao.AdicionarElegivel(associado); votacao.IniciarVotacao(); elegivelRetornado.RegistrarVoto(); Assert.Empty(votacao.ApurarVotos(new Grupo("Grupo 2"))); }