public void Should_Add_New_Error_When_Save()
        {
            var fakeContext = new FakeContext("SaveNewError");

            var fakeError = new ErrorOccurrence();

            fakeError.Id               = 3;
            fakeError.Title            = "title";
            fakeError.RegistrationDate = DateTime.Today;
            fakeError.Origin           = "ip";
            fakeError.Filed            = false;
            fakeError.Details          = "details";
            fakeError.IdEvent          = 2;
            fakeError.EnvironmentId    = 2;
            fakeError.LevelId          = 2;
            fakeError.Username         = "******";

            using (var context = new CentralErroContexto(fakeContext.FakeOptions))
            {
                var service = new ErrorOcurrenceService(context);
                var actual  = service.SaveOrUpdate(fakeError);

                Assert.NotEqual(0, actual.Id);
            }
        }
        public ErrorOccurrenceServiceTest()
        {
            _fakeContext = new FakeContext("ErrorTestes");
            _fakeContext.FillWithAll();

            _contexto     = new CentralErroContexto(_fakeContext.FakeOptions);
            _errorService = new ErrorOcurrenceService(_contexto);
        }
        public void Should_Return_Ok_When_Find_Filed_Errors()
        {
            var error = _fakeContext.GetFakeData <ErrorOccurrence>()
                        .Where(x => x.Filed == true)
                        .ToList();

            var service = new ErrorOcurrenceService(_contexto);
            var atual   = service.FindFiledErrors();

            Assert.Equal(error, atual, new ErrorOccurrenceIdComparer());
        }
        public void Should_Return_Right_Error_When_Find_By_Id(int id)
        {
            var fakeContext = new FakeContext("ErrorById");

            fakeContext.FillWith <ErrorOccurrence>();

            using (var context = new CentralErroContexto(fakeContext.FakeOptions))
            {
                var expected = fakeContext.GetFakeData <ErrorOccurrence>().Find(x => x.Id == id);

                var service = new ErrorOcurrenceService(context);
                var actual  = service.FindById(id);

                Assert.Equal(expected, actual, new ErrorOccurrenceIdComparer());
            }
        }
        public void Should_Return_Ok_When_Filed_Errors()
        {
            var fakeContext = new FakeContext("FileError");

            var fakeError = new ErrorOccurrence();

            fakeError.Id    = 1;
            fakeError.Filed = true;

            using (var context = new CentralErroContexto(fakeContext.FakeOptions))
            {
                var service = new ErrorOcurrenceService(context);
                var actual  = service.SaveOrUpdate(fakeError);

                Assert.NotEqual(0, actual.Id);
            }
        }
        public void Should_Be_Ok_When_Get_By_Filter(int ambiente, int?campoOrdenacao, int?campoBuscado,
                                                    string textoBuscado)
        {
            var fakeError = new ErrorOccurrence();

            if (textoBuscado == "error")
            {
                fakeError.LevelId = 1;
            }
            else if (textoBuscado == "warn")
            {
                fakeError.LevelId = 2;
            }
            else
            {
                fakeError.LevelId = 3;
            }

            List <ErrorOccurrence> errorsSearchList = new List <ErrorOccurrence>();
            List <ErrorOccurrence> errorsList       = new List <ErrorOccurrence>();

            if (textoBuscado != "" && campoBuscado != 0 && campoBuscado != null)
            {
                if (campoBuscado == 1)
                {
                    errorsList = _fakeContext.GetFakeData <ErrorOccurrence>().Where(x => x.LevelId == fakeError.LevelId && x.EnvironmentId == ambiente).ToList();
                }
                else if (campoBuscado == 2)
                {
                    errorsList = _fakeContext.GetFakeData <ErrorOccurrence>().Where(x => x.Details.Contains(textoBuscado) && x.EnvironmentId == ambiente).ToList();
                }
                else if (campoBuscado == 3)
                {
                    errorsList = _fakeContext.GetFakeData <ErrorOccurrence>().Where(x => x.Origin.Contains(textoBuscado) && x.EnvironmentId == ambiente).ToList();
                }
            }
            else if (ambiente > 0)
            {
                errorsList = _fakeContext.GetFakeData <ErrorOccurrence>().Where(x => x.EnvironmentId == ambiente).ToList();
            }
            else
            {
                errorsList = _fakeContext.GetFakeData <ErrorOccurrence>().ToList();
            }

            if (errorsList.Count() > 0)
            {
                if (campoOrdenacao == 1 && campoBuscado != 1)
                {
                    errorsSearchList = errorsList.OrderBy(x => x.LevelId).ToList();
                }
                else if (campoOrdenacao == 2)
                {
                    if (campoBuscado != 1)
                    {
                        var ordenacao = errorsList.GroupBy(x => x.LevelId)
                                        .Select(group => new
                        {
                            Level      = group.Key,
                            Quantidade = group.Count()
                        })
                                        .OrderByDescending(x => x.Quantidade)
                                        .ToList();

                        errorsSearchList = errorsList.OrderBy(x => ordenacao.Select(y => y.Level).IndexOf(x.LevelId)).ToList();
                    }
                    else
                    {
                        var ordenacao = errorsList.GroupBy(x => x.Details)
                                        .Select(group => new
                        {
                            Details    = group.Key,
                            Quantidade = group.Count()
                        })
                                        .OrderByDescending(x => x.Quantidade)
                                        .ToList();

                        errorsSearchList = errorsList.OrderBy(x => ordenacao.Select(y => y.Details).IndexOf(x.Details)).ToList();
                    }
                }
                else
                {
                    var ordenacao = errorsList.GroupBy(x => x.Origin)
                                    .Select(group => new
                    {
                        Origin     = group.Key,
                        Quantidade = group.Count()
                    })
                                    .OrderByDescending(x => x.Quantidade)
                                    .ToList();

                    errorsSearchList = errorsList.OrderBy(x => ordenacao.Select(y => y.Origin).IndexOf(x.Origin)).ToList();
                }
            }
            else
            {
                errorsSearchList = errorsSearchList.OrderBy(x => x.Origin).ToList();
            }

            errorsSearchList = errorsSearchList.Where(x => x.Filed == false).ToList();

            List <int>    errors_int    = new List <int>();
            List <string> errors_string = new List <string>();

            if (errorsSearchList.Count() > 0)
            {
                if (campoOrdenacao == 1 && campoBuscado != 1)
                {
                    errors_int = errorsSearchList.Select(x => x.LevelId).ToList();
                }
                else if (campoOrdenacao == 2)
                {
                    if (campoBuscado != 1)
                    {
                        errors_int = errorsSearchList.Select(x => x.LevelId).ToList();
                    }
                    else
                    {
                        errors_string = errorsSearchList.Select(x => x.Details).ToList();
                    }
                }
                else
                {
                    errors_string = errorsSearchList.Select(x => x.Origin).ToList();
                }
            }
            else
            {
                errors_string = errorsSearchList.Select(x => x.Origin).ToList();
            }

            var service = new ErrorOcurrenceService(_contexto);
            var actual  = service.FindByFilters(ambiente, campoOrdenacao, campoBuscado, textoBuscado);

            Assert.Equal(errorsSearchList, actual, new ErrorOccurrenceIdComparer());
        }