Ejemplo n.º 1
0
        public void GetAllShouldReturnAllEntities()
        {
            // arrange
            Bug[] bugs =
            {
                new Bug()
                {
                    Content = "Bug1"
                },
                new Bug()
                {
                    Content = "Bug2"
                }
            };

            var repoMock = new Mock <IRepository <Bug> >();

            repoMock.Setup(x => x.All()).Returns(bugs.AsQueryable());

            var bugsControllers = new BugsController(repoMock.Object);

            // act
            var result = bugsControllers.GetAllBugs().ToArray <Bug>();

            // assert
            CollectionAssert.AreEqual(bugs, result);
        }
        public void AddValidBugShouldBeAddedToRepository()
        {
            // Arrange
            var bugLoggerFakeData = new BugLoggerFakeUoW();
            var bug = new CreateBugModel()
            {
                Description = "bug-1",
                LogDate     = DateTime.Now
            };

            var bugsController = new BugsController(bugLoggerFakeData);

            this.SetupController(bugsController);

            // Act
            bugsController.Create(bug);

            // Assert
            Assert.AreEqual(bugLoggerFakeData.Bugs.All().Count(), 1);

            var bugInDatabase = bugLoggerFakeData.Bugs.All().First();

            Assert.AreEqual(bug.Description, bugInDatabase.Description);
            Assert.AreEqual(BugStatus.Pending, bugInDatabase.Status);
            Assert.IsNotNull(bugInDatabase.LogDate);
            Assert.IsTrue(bugLoggerFakeData.IsSaveChangedCalled);
        }
        public void ChangeBugStatus_WhenStatusIsChanged_ShowdReturnBugsCollectionFromSearchedStatus()
        {
            //arrange
            FakeRepository <Bug> fakeRepo = new FakeRepository <Bug>();

            var bugs = new List <Bug>()
            {
                new Bug()
                {
                    Id     = 1,
                    Text   = "TEST NEW BUG 1",
                    Status = Status.Pending
                }
            };

            fakeRepo.Entities = bugs;

            var controller = new BugsController(fakeRepo as IRepository <Bug>);

            this.SetupController(controller);

            //act
            controller.PutBug(1, Status.Fixed);

            //assert

            Assert.AreEqual(Status.Fixed, bugs[0].Status);
        }
        public void Modify_NonExisting_Bug_With_Correct_Data_Should_Return_404NotFound()
        {
            // Arrange
            var newBugData = new EditBugBindingModel
            {
                Title       = "Modified title",
                Description = "Modified description",
                Status      = "Closed"
            };

            var mockContext = new Mock <IBugTrackerData>();

            mockContext.Setup(c => c.Bugs)
            .Returns(this.mock.BugRepositoryMock.Object);

            var bugsController = new BugsController(mockContext.Object);

            this.SetupController(bugsController);

            // Act
            var response = bugsController.EditExistingBug(int.MaxValue, newBugData)
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
        public void AddValidBugShouldBeAddedToRepository_Mocking()
        {
            // Arrange
            var bug = new CreateBugModel()
            {
                Description = "bug-1",
                LogDate     = DateTime.Now
            };

            var bugs = new List <Bug>();
            var bugLoggerFakeData = this.MockUnitOfWorkForActionAll(bugs);
            var bugsController    = new BugsController(bugLoggerFakeData);

            this.SetupController(bugsController);

            // Act
            bugsController.Create(bug);

            // Assert
            Assert.AreEqual(bugLoggerFakeData.Bugs.All().Count(), 1);

            var bugInDatabase = bugLoggerFakeData.Bugs.All().First();

            Assert.AreEqual(bug.Description, bugInDatabase.Description);
            Assert.AreEqual(BugStatus.Pending, bugInDatabase.Status);
            Assert.IsNotNull(bugInDatabase.LogDate);
        }
Ejemplo n.º 6
0
        public void GetAll_WhenValid_ShouldReturnBugsCollection_WithMoq()
        {
            // Arrange
            var repoMock = new Mock <IRepository <Bug> >();

            Bug[] bugs =
            {
                new Bug()
                {
                    Text = "Test bug #1"
                },
                new Bug()
                {
                    Text = "Test bug #2"
                }
            };

            repoMock.Setup(repo => repo.All())
            .Returns(bugs.AsQueryable());

            var controller = new BugsController(repoMock.Object);

            // Act
            var result = controller.GetAll();

            // Assert
            CollectionAssert.AreEquivalent(bugs, result.ToArray <Bug>());
        }
        public void Modify_Existing_Bug_With_Correct_Data_Should_Return_200OK_And_Modify_Bug_In_Repository()
        {
            // Arrange
            var fakeBugToModify = this.mock.BugRepositoryMock.Object.All().FirstOrDefault();
            var newBugData      = new EditBugBindingModel
            {
                Title       = "Modified title",
                Description = "Modified description",
                Status      = "Closed"
            };

            var mockContext = new Mock <IBugTrackerData>();

            mockContext.Setup(c => c.Bugs)
            .Returns(this.mock.BugRepositoryMock.Object);

            var bugsController = new BugsController(mockContext.Object);

            this.SetupController(bugsController);

            // Act
            var response = bugsController.EditExistingBug(fakeBugToModify.Id, newBugData)
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            var fakeBugAfterEditing = this.mock.BugRepositoryMock.Object.All().LastOrDefault();

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.AreEqual(newBugData.Title, fakeBugAfterEditing.Title);
            Assert.AreEqual(newBugData.Description, fakeBugAfterEditing.Description);
            Assert.AreEqual(newBugData.Status, fakeBugAfterEditing.Status.ToString());
        }
Ejemplo n.º 8
0
        public void GetByStatus_WhenValid_ShouldReturnCollectionMemberWithCorrespondingStatus()
        {
            Bug[] bugs =
            {
                new Bug()
                {
                    Text   = "First bug",
                    Status = Status.Assigned
                },
                new Bug()
                {
                    Text   = "Second bug",
                    Status = Status.Pending
                }
            };

            var data = Mock.Create <IBugLoggerData>();

            Mock.Arrange(() => data.Bugs.All())
            .Returns(() => bugs.AsQueryable());

            var controller = new BugsController(data);

            this.SetupController(controller);

            var actionResult = controller.GetAllByStatus("Pending");
            var response     = actionResult.ExecuteAsync(CancellationToken.None).Result;
            var actual       = response.Content.ReadAsAsync <IEnumerable <BugModel> >().Result.Select(a => a.Id).ToList();

            var expected = bugs.AsQueryable().Where(b => b.Status == Status.Pending).Select(a => a.Id).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
Ejemplo n.º 9
0
        public void EditBug_InvalidBugData_ShouldReturn400BadRequest()
        {
            // Arrange -> create a few bugs
            var dataLayerMock = new BugTrackerDataMock();
            var bugsMock      = dataLayerMock.Bugs;

            bugsMock.Add(new Bug()
            {
                Id = 1, Title = "Bug #1"
            });
            bugsMock.Add(new Bug()
            {
                Id = 2, Title = "Bug #2"
            });

            // Act -> edit bug data
            var bugsController = new BugsController(dataLayerMock);

            this.SetupControllerForTesting(bugsController, "bugs");
            EditBugInputModel editBugData = null;
            var httpResponse = bugsController.EditBug(1234, editBugData)
                               .ExecuteAsync(new CancellationToken()).Result;

            // Assert -> HTTP status code 400 (BadRequest)
            Assert.AreEqual(HttpStatusCode.BadRequest, httpResponse.StatusCode);
        }
Ejemplo n.º 10
0
        public void AddBug_WhenBugTextIsValid_ShouldBeAddedToRepoWithLogDateAndStatusPending()
        {
            var bugs = new List <Bug>();

            var bug = new BugModel()
            {
                Text = "NEW TEST BUG"
            };

            var data = Mock.Create <IBugLoggerData>();

            Mock.Arrange(() => data.Bugs.All())
            .Returns(() => bugs.AsQueryable());

            Mock.Arrange(() => data.SaveChanges())
            .DoInstead(() => bugs.Add(new Bug()
            {
                Text = "NEW TEST BUG"
            }));

            var controller = new BugsController(data);

            this.SetupController(controller);

            //act
            controller.PostBug(bug);

            //assert
            Assert.AreEqual(data.Bugs.All().Count(), 1);
            var bugInDb = data.Bugs.All().FirstOrDefault();

            Assert.AreEqual(bug.Text, bugInDb.Text);
            Assert.IsNotNull(bugInDb.LogDate);
            Assert.AreEqual(Status.Pending, bugInDb.Status);
        }
Ejemplo n.º 11
0
        public void GetById_WhenValid_ShouldReturnTheObjectWithSearchedId()
        {
            var data = Mock.Create <IBugLoggerData>();

            Bug[] bugs =
            {
                new Bug()
                {
                    Id   = 5,
                    Text = "First bug"
                }
            };

            Mock.Arrange(() => data.Bugs.All())
            .Returns(() => bugs.AsQueryable());

            var controller = new BugsController(data);

            this.SetupController(controller);

            var actionResult = controller.Get(5);
            var response     = actionResult.ExecuteAsync(CancellationToken.None).Result;
            var actual       = response.Content.ReadAsAsync <IEnumerable <BugModel> >().Result.Select(a => a.Id).ToList();

            var expected = bugs.AsQueryable().Where(b => b.Id == 5).Select(a => a.Id).ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
Ejemplo n.º 12
0
        public void EditExistingBugDescriptionAndStatus_ShouldReturn200OK_Modify()
        {
            // Arrange -> create a new bug
            var data = new BugTrackerDataMock();
            var bug  = new Bug()
            {
                Id = 1, Title = "test", Status = Status.Open
            };

            data.Bugs.Add(bug);

            var controller = new BugsController(data);

            this.SetupControllerForTesting(controller, "bugs");

            // Act -> edit the above created bug
            var httpResponse = controller.PatchEditBug(1, new BugBindingEditBugModel()
            {
                Description = "Bomba", Status = "Closed"
            })
                               .ExecuteAsync(new CancellationToken()).Result;

            // Assert -> 200 OK
            Assert.AreEqual(HttpStatusCode.OK, httpResponse.StatusCode);

            // Assert the service holds the modified bug
            Assert.AreEqual("test", bug.Title);
            Assert.AreEqual(Status.Closed, bug.Status);
            Assert.AreEqual("Bomba", bug.Description);
        }
        public void EditBugStatusOnly()
        {
            var controller = new BugsController(dataMock.Object);

            SetupController(controller, "Bugs");

            var bugToEdit = new Bug
            {
                Id          = 22,
                Title       = "Bug4e Tuka",
                Description = "ne6to ne e nared",
                Status      = BugStatus.InProgress,
                DateCreated = DateTime.Now
            };

            dataMock.Setup(data => data.Bugs.Find(It.IsAny <object>())).Returns(bugToEdit);

            var updatedBug = new EditBugInputModel {
                Status = "Closed"
            };
            var result = controller.EditBug(2, updatedBug).ExecuteAsync(new CancellationToken()).Result;

            Assert.AreEqual(HttpStatusCode.OK, result.StatusCode);
            var resultContent = result.Content.ReadAsStringAsync().Result;

            Assert.IsTrue(resultContent.Contains("Bug #" + bugToEdit.Id + " patched."));
        }
Ejemplo n.º 14
0
        public void PostBugShouldCallRepoAddAndSaveChanges()
        {
            // arrange
            List <Bug> bugsInRepoMock = new List <Bug>();
            Bug        bug            = new Bug()
            {
                Content = "Bug1"
            };

            var repoMock = new Mock <IRepository <Bug> >();

            repoMock.Setup(x => x.Add(It.IsAny <Bug>()))
            .Callback((Bug b) => bugsInRepoMock.Add(b));

            repoMock.Setup(x => x.SaveChanges()).Returns(1);

            var bugsController = new BugsController(repoMock.Object);

            this.SetupController(bugsController);

            // act
            bugsController.PostBug(bug);

            // assert
            repoMock.Verify(x => x.SaveChanges(), Times.Exactly(1));
            Assert.AreEqual(1, bugsInRepoMock.Count);
            Assert.AreEqual("Bug1", bugsInRepoMock[0].Content);
            Assert.IsNotNull(bugsInRepoMock[0].LogDate);
            Assert.IsNotNull(bugsInRepoMock[0].Status);
        }
        public void AddBug_WhenBugTextIsValid_ShouldBeAddedToRepoWithLogDateAndStatusPending()
        {
            //arrange
            var repo = new FakeRepository <Bug>();

            repo.IsSaveCalled = false;
            repo.Entities     = new List <Bug>();
            var bug = new Bug()
            {
                Text = "NEW TEST BUG"
            };
            var controller = new BugsController(repo);

            this.SetupController(controller);

            //act
            controller.PostBug(bug);

            //assert
            Assert.AreEqual(repo.Entities.Count, 1);
            var bugInDb = repo.Entities.First();

            Assert.AreEqual(bug.Text, bugInDb.Text);
            Assert.IsNotNull(bugInDb.LogDate);
            Assert.AreEqual(Status.Pending, bugInDb.Status);
            Assert.IsTrue(repo.IsSaveCalled);
        }
Ejemplo n.º 16
0
        public void EditBug_NonExistingBug_ShouldReturn404NotFound()
        {
            // Arrange -> create a few bugs
            var dataLayerMock = new BugTrackerDataMock();
            var bugsMock      = dataLayerMock.Bugs;

            bugsMock.Add(new Bug()
            {
                Id = 1, Title = "Bug #1"
            });
            bugsMock.Add(new Bug()
            {
                Id = 2, Title = "Bug #2"
            });

            // Act -> edit bug data
            var bugsController = new BugsController(dataLayerMock);

            this.SetupControllerForTesting(bugsController, "bugs");
            var editBugData = new EditBugInputModel()
            {
                Title = "new title"
            };
            var httpResponse = bugsController.EditBug(1234, editBugData)
                               .ExecuteAsync(new CancellationToken()).Result;

            // Assert -> HTTP status code 404 (Not Found)
            Assert.AreEqual(HttpStatusCode.NotFound, httpResponse.StatusCode);
        }
        public void GetAll_WhenValid_ShouldReturnBugsCollection_WithMocks()
        {
            //arrange
            var repo = Mock.Create <IRepository <Bug> >();

            Bug[] bugs =
            {
                new Bug()
                {
                    Text = "Bug1"
                },
                new Bug()
                {
                    Text = "Bug2"
                }
            };

            Mock.Arrange(() => repo.All())
            .Returns(() => bugs.AsQueryable());

            var controller = new BugsController(repo);
            //act
            var result = controller.GetAll();

            //assert
            CollectionAssert.AreEquivalent(bugs, result.ToArray <Bug>());
        }
Ejemplo n.º 18
0
        public void GetCount_WhenValid_ShouldReturnSpecificNumberOfBugs()
        {
            FakeRepository <Bug> fakeRepo = new FakeRepository <Bug>();

            var bugs = new List <Bug>()
            {
                new Bug()
                {
                    Text   = "TEST NEW BUG 1",
                    Status = Status.Pending
                },
                new Bug()
                {
                    Text   = "TEST NEW BUG 2",
                    Status = Status.Pending
                },
                new Bug()
                {
                    Text   = "TEST NEW BUG 3",
                    Status = Status.ForTesting
                },
                new Bug()
                {
                    Text   = "TEST NEW BUG 4",
                    Status = Status.Fixed
                }
            };

            fakeRepo.Entities = bugs;
            var controller = new BugsController(fakeRepo as IRepository <Bug>);
            var result     = controller.GetCount(2).ToList();

            Assert.IsTrue(result.Count() == 2);
        }
Ejemplo n.º 19
0
        public void GetAll_WhenValid_ShouldReturnBugsCollection()
        {
            // Arrange
            var repo = new RepositoryMock <Bug>();

            var bugs = new List <Bug>()
            {
                new Bug()
                {
                    Text = "Test bug #1"
                },
                new Bug()
                {
                    Text = "Test bug #2"
                },
                new Bug()
                {
                    Text = "Test bug #3"
                }
            };

            repo.Entities = bugs;

            var controller = new BugsController(repo);

            // Act
            var result = controller.GetAll();

            // Assert
            CollectionAssert.AreEquivalent(bugs, result.ToList <Bug>());
        }
Ejemplo n.º 20
0
        public void InitTestInitialize()
        {
            // Setup fake bug
            this.fakeBug = new Bug()
            {
                Id          = 1,
                Title       = "not changed",
                Description = "not changed",
                DateCreated = DateTime.Now,
                Comments    = new List <Comment>(),
                Author      = null,
                Status      = Status.Open
            };

            // Setup repositories
            var mockedRepository = new Mock <IRepository <Bug> >();

            mockedRepository.Setup(r => r.GetById(It.Is <int>(i => i == 1))).Returns(this.fakeBug);

            // Setup data layer
            var mockedContext = new Mock <IBugTrackerData>();

            mockedContext.Setup(c => c.Bugs).Returns(mockedRepository.Object);

            // Setup controller
            this.controller               = new BugsController(mockedContext.Object);
            this.controller.Request       = new HttpRequestMessage();
            this.controller.Configuration = new HttpConfiguration();
        }
        public void Modify_Existing_Bug_With_InCorrect_Data_Should_Return_400BadRequest_And_Do_Not_Modify_Bug()
        {
            // Arrange
            var fakeBugToModify = this.mock.BugRepositoryMock.Object.All().FirstOrDefault();
            var newBugData      = new EditBugBindingModel {
            };

            var mockContext = new Mock <IBugTrackerData>();

            mockContext.Setup(c => c.Bugs)
            .Returns(this.mock.BugRepositoryMock.Object);

            var bugsController = new BugsController(mockContext.Object);

            this.SetupController(bugsController);
            bugsController.ModelState.AddModelError("No data", "Empty binding model.");

            // Act
            var response = bugsController.EditExistingBug(fakeBugToModify.Id, newBugData)
                           .ExecuteAsync(CancellationToken.None).Result;

            // Assert
            var fakeBugAfterEditing = this.mock.BugRepositoryMock.Object.All().FirstOrDefault();

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
            Assert.AreEqual(fakeBugToModify.Title, fakeBugAfterEditing.Title);
            Assert.AreEqual(fakeBugToModify.Description, fakeBugAfterEditing.Description);
            Assert.AreEqual(fakeBugToModify.Status, fakeBugAfterEditing.Status);
        }
        public void GetAll_WhenValid_ShouldReturnBugsCollection()
        {
            //arrange
            FakeRepository <Bug> fakeRepo = new FakeRepository <Bug>();

            var bugs = new List <Bug>()
            {
                new Bug()
                {
                    Text = "TEST NEW BUG 1"
                },
                new Bug()
                {
                    Text = "TEST NEW BUG 2"
                },
                new Bug()
                {
                    Text = "TEST NEW BUG 3"
                }
            };

            fakeRepo.Entities = bugs;

            var controller = new BugsController(fakeRepo as IRepository <Bug>);

            //act

            var result = controller.GetAll();

            //assert

            CollectionAssert.AreEquivalent(bugs, result.ToList <Bug>());
        }
Ejemplo n.º 23
0
        public void GetAll_WhenValid_ShouldReturnBugsCollection_WithMocks()
        {
            var repo = Mock.Create <IRepository <Bug> >();

            Bug[] bugs =
            {
                new Bug()
                {
                    Id = 200, Text = "Bug1", Status = Status.Pending, LogDate = new DateTime(2011, 6, 5)
                },
                new Bug()
                {
                    Id = 21, Text = "Bug2", Status = Status.Pending, LogDate = new DateTime(2013, 6, 2)
                }
            };

            Mock.Arrange(() => repo.All())
            .Returns(() => bugs.AsQueryable());

            var controller = new BugsController(repo);
            var result     = controller.GetAll().ToArray <ResponseBugModel>();

            var expected = bugs.AsQueryable().ProjectTo <ResponseBugModel>().ToArray();

            CollectionAssert.AreEquivalent(expected, result);
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Loading all bugs into DataTable
        /// </summary>
        public void LoadAllBugs()
        {
            BugsController bController = new BugsController();
            DataTable      dt          = bController.ShowAllBugs(email);

            dataGridView1.DataSource = dt;
            dataGridView1.Columns["bugId"].HeaderText       = "BugId";
            dataGridView1.Columns["projectname"].HeaderText = "Project Name";
            dataGridView1.Columns["classname"].HeaderText   = "Class Name";
            dataGridView1.Columns["method"].HeaderText      = "Method";
            dataGridView1.Columns["lineNo"].HeaderText      = "StartLine No.";
            dataGridView1.Columns["endline"].HeaderText     = "EndLine no.";
            dataGridView1.Columns["author"].HeaderText      = "Author";
            dataGridView1.Columns["year"].HeaderText        = "Year";
            dataGridView1.Columns["month"].HeaderText       = "Month";
            dataGridView1.Columns["day"].HeaderText         = "Day";
            dataGridView1.Columns["sourcecode"].HeaderText  = "Source Code";
            dataGridView1.Columns["status"].HeaderText      = "Status";
            dataGridView1.Columns["addedby"].HeaderText     = "Added By";
            dataGridView1.Columns["solveremail"].HeaderText = "Solver Email";
            dataGridView1.Columns["solveyear"].HeaderText   = "Solve Year";
            dataGridView1.Columns["solvemonth"].HeaderText  = "Solve month";
            dataGridView1.Columns["solveday"].HeaderText    = "Solve day";
            dataGridView1.Columns["solvecode"].HeaderText   = "Solve code";

            dataGridView1.SelectionMode            = DataGridViewSelectionMode.FullRowSelect;
            dataGridView1.AllowUserToAddRows       = false;
            dataGridView1.AllowUserToDeleteRows    = false;
            dataGridView1.AllowUserToResizeColumns = false;
            dataGridView1.RowHeadersWidthSizeMode  = DataGridViewRowHeadersWidthSizeMode.DisableResizing;
        }
Ejemplo n.º 25
0
        //button event to delete data
        private void button2_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedRows.Count != 0)
            {
                DialogResult result = MessageBox.Show("Are you sure you want to delete bug record", "Delete", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    int    bugId   = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
                    string addedby = dataGridView1.SelectedRows[0].Cells[13].Value.ToString();

                    Bugs bugs = new Bugs();
                    bugs.BugId = bugId;
                    BugsController bController = new BugsController();
                    Boolean        delete      = bController.DeleteBugs(bugs);
                    if (delete)
                    {
                        MessageBox.Show("Deleted Succesfully");
                        dataGridView1.Refresh();
                        LoadBugs();
                    }
                    else
                    {
                        MessageBox.Show("delete unsuccesfull");
                    }
                }
            }
            else
            {
                MessageBox.Show("Please select a row");;
            }
        }
Ejemplo n.º 26
0
        public void TestJson()
        {
            var controller = new BugsController();

            controller.WithCallTo(c => c.ToJson())
            .ShouldReturnJson();
        }
Ejemplo n.º 27
0
        public void Create_GetMethod()
        {
            var controller = new BugsController();

            controller.WithCallTo(c => c.Create())
            .ShouldRenderDefaultView();
        }
Ejemplo n.º 28
0
        public void Details_InvalidId_NotFound()
        {
            var controller = new BugsController();

            controller.WithCallTo(c => c.Details(-1))
            .ShouldGiveHttpStatus(HttpStatusCode.NotFound);
        }
Ejemplo n.º 29
0
        public void Details_NullParameter_BadRequest()
        {
            var controller = new BugsController();

            controller.WithCallTo(c => c.Details(null))
            .ShouldGiveHttpStatus(HttpStatusCode.BadRequest);
        }
Ejemplo n.º 30
0
        public void Index_ShouldPass()
        {
            var controller = new BugsController();

            controller.WithCallTo(c => c.Index())
            .ShouldRenderDefaultView()
            .WithModel <IList <Bug> >();
        }