public void InserirManutencaoDeUmaParte() { var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes(); var repositorio = new RepositorioEquipamentos(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes); var servico = new CriadorManutencao(repositorio, new FabricaManutencao()); Extintor extintor = null; try { var siteId = Guid.NewGuid(); extintor = new ConstrutorExtintor().NoSite(siteId).Construir(); repositorio.Inserir(extintor); var nomeParteParaManutencao = extintor.ParametrosManutencao.Partes.First().Nome; servico.Criar(siteId, extintor.Id.ToString(), new ManutencaoDto { Data = DateTime.Now.ParaUnixTime(), Parte = nomeParteParaManutencao }); var extintorAposAManutencao = repositorio.BuscarPorId(siteId, extintor.Id); extintorAposAManutencao.Manutencoes.Should().HaveCount(1); extintorAposAManutencao.Manutencoes.First().Parte.Should().Be(nomeParteParaManutencao); } finally { if (extintor != null) repositorio.Remover(extintor.Id); } }
public void LidarCorretamenteComHierarquiaDeEquipamentos() { var leitorConfiguracoes = new ConfigBancoDadosVariavelAmbienteTestes(); var repositorio = new RepositorioEquipamentos(new MongoClient(leitorConfiguracoes.StringConexao), leitorConfiguracoes); Extintor extintor = null; Mangueira mangueira = null; SistemaContraIncendioEmCoifa sistemaContraIncendioEmCoifa = null; CentralAlarme centralAlarme = null; try { var siteId = Guid.NewGuid(); extintor = new ConstrutorExtintor().NoSite(siteId).Construir(); repositorio.Inserir(extintor); mangueira = new ConstrutorMangueira().NoSite(siteId).Construir(); repositorio.Inserir(mangueira); sistemaContraIncendioEmCoifa = new ConstrutorSistemaContraIncendioEmCoifa().NoSite(siteId).Construir(); repositorio.Inserir(sistemaContraIncendioEmCoifa); centralAlarme = new ConstrutorCentralAlarme().NoSite(siteId).Construir(); repositorio.Inserir(centralAlarme); repositorio.BuscarPorId(siteId, extintor.Id).Tipo.Should().Be(TipoEquipamento.Extintor); repositorio.BuscarPorId(siteId, mangueira.Id).Tipo.Should().Be(TipoEquipamento.Mangueira); repositorio.BuscarPorId(siteId, sistemaContraIncendioEmCoifa.Id).Tipo.Should().Be(TipoEquipamento.SistemaContraIncendioEmCoifa); repositorio.BuscarPorId(siteId, centralAlarme.Id).Tipo.Should().Be(TipoEquipamento.CentralAlarme); } finally { if (extintor != null) repositorio.Remover(extintor.Id); if (mangueira != null) repositorio.Remover(mangueira.Id); if (sistemaContraIncendioEmCoifa != null) repositorio.Remover(sistemaContraIncendioEmCoifa.Id); if (centralAlarme != null) repositorio.Remover(centralAlarme.Id); } }
public void RetornarSituacaoCorretaParaEquipamentoConformeDataDeReferencia() { //Arrange var extintorParaCasosDeTeste = new ConstrutorExtintor() .ComManutencao(new DateTime(2015, 2, 15)) .ComManutencao(new DateTime(2016, 2, 13)) .Construir(); var casosDeTestePorEquipamentoDataReferencia = new Dictionary<Tuple<Equipamento, DateTime, string>, SituacaoManutencao> { { new Tuple<Equipamento, DateTime, string>( new ConstrutorMangueira().Construir(), DateTime.Now, "Equipamento (exceto extintor) sem nenhuma manutenção deve retornar inconclusivo"), SituacaoManutencao.Inconclusivo }, { new Tuple<Equipamento, DateTime, string>( new ConstrutorExtintor().ComDataDeFabricacao(new DateTime(2016, 2, 13)).Construir(), new DateTime(2017,1,13), "Equipamento sem nenhuma manutenção deve retornar 'estado crítico' conforme a data de fabricação"), SituacaoManutencao.EstadoCritico }, { new Tuple<Equipamento, DateTime, string>( extintorParaCasosDeTeste, new DateTime(2017,1,13), "Equipamento mantido há 11 meses deve retornar 'estado crítico'"), SituacaoManutencao.EstadoCritico }, { new Tuple<Equipamento, DateTime, string>( extintorParaCasosDeTeste, new DateTime(2017,2,1), "Equipamento mantido há mais de 12 meses deve retornar 'estado crítico'"), SituacaoManutencao.EstadoCritico }, { new Tuple<Equipamento, DateTime, string>( extintorParaCasosDeTeste, new DateTime(2016,12,14), "Equipamento mantido há mais de 10 meses deve retornar 'estado de atenção'"), SituacaoManutencao.EstadoDeAtencao }, { new Tuple<Equipamento, DateTime, string>( extintorParaCasosDeTeste, new DateTime(2016,12,31), "Equipamento mantido há mais de 11 meses deve retornar 'estado de atenção'"), SituacaoManutencao.EstadoDeAtencao } }; foreach (var caso in casosDeTestePorEquipamentoDataReferencia) { var equipamento = caso.Key.Item1; var dataReferenciaParaCalculoSituacao = caso.Key.Item2; var descricaoCasoDeTeste = caso.Key.Item3; var situacaoEsperada = caso.Value; //Action var situacaoCalculada = new CalculadoraSituacaoManutencao() .Calcular(equipamento, dataReferenciaParaCalculoSituacao.ParaUnixTime()); //Asserts situacaoCalculada.Should().Be(situacaoEsperada, descricaoCasoDeTeste); } }