public IHttpActionResult DeleteOrganizationGTILink(int id) { try { UnitOfWork unitOfWork = new UnitOfWork(factory); OrganizationGTILink link = unitOfWork.OrganizationGTILinksRepository .Get(d => d.Id == id).FirstOrDefault(); link.Deleted = true; unitOfWork.OrganizationGTILinksRepository.Update(link); unitOfWork.Save(); return(Ok(link.ToDTO())); } catch (NotFoundException nfe) { return(NotFound()); } catch (ConflictException ce) { return(Conflict()); } catch (Exception e) { return(BadRequest(e.Message)); } }
public void PostLink_ShoulAddLink() { var linksTestData = new List <OrganizationGTILink>() { new OrganizationGTILink { Id = 1, OrganizationId = 2 }, new OrganizationGTILink { Id = 2, Deleted = true, OrganizationId = 2 }, new OrganizationGTILink { Id = 3, OrganizationId = 3 } }; var links = MockHelper.MockDbSet(linksTestData); var orggtiTestData = new List <OrganizationGTI>() { new OrganizationGTI { Id = 77, OfficeId = 1, NativeName = "Naive name of organization" } }; var orgs = MockHelper.MockDbSet(orggtiTestData); var offTestData = new List <Office>() { new Office { Id = 1, ShortName = "Some short office name" } }; var offices = MockHelper.MockDbSet(offTestData); var dbContext = new Mock <IAppDbContext>(); dbContext.Setup(m => m.OrganizationGTILinks).Returns(links.Object); dbContext.Setup(d => d.Set <OrganizationGTILink>()).Returns(links.Object); dbContext.Setup(m => m.GTIOrganizations).Returns(orgs.Object); dbContext.Setup(d => d.Set <OrganizationGTI>()).Returns(orgs.Object); dbContext.Setup(m => m.Offices).Returns(offices.Object); dbContext.Setup(d => d.Set <Office>()).Returns(offices.Object); links.Setup(d => d.Find(It.IsAny <object>())).Returns <object[]>((keyValues) => { return(links.Object.SingleOrDefault(product => product.Id == (int)keyValues.Single())); }); links.Setup(d => d.Add(It.IsAny <OrganizationGTILink>())).Returns <OrganizationGTILink>((contact) => { linksTestData.Add(contact); links = MockHelper.MockDbSet(linksTestData); return(contact); }); dbContext.Setup(d => d.ExecuteStoredProcedure <int>(It.IsAny <string>(), It.IsAny <object[]>())) .Returns <string, object[]>((query, parameters) => { List <int> list = new List <int>(); if (query.Contains("NewTableId")) { int i = links.Object.Max(d => d.Id) + 1; list.Add(i); } else { list.Add(0); } return(list); }); var factory = new Mock <IDbContextFactory>(); factory.Setup(m => m.CreateDbContext()).Returns(dbContext.Object); OrganizationGTILink link = new OrganizationGTILink { Id = 33, OrganizationId = 55, GTIId = 77 }; var identityHelper = new Mock <IIdentityHelper>(); // identityHelper.Setup(d => d.GetUserTableName(It.IsAny<IPrincipal>())).Returns("Employee"); // identityHelper.Setup(d => d.GetUserTableId(It.IsAny<IPrincipal>())).Returns(11); var controller = new OrganizationGTILinksController(factory.Object, identityHelper.Object); var result = controller.PostOrganizationGTILink(link.ToDTO()) as CreatedAtRouteNegotiatedContentResult <OrganizationGTILinkDTO>; Assert.IsNotNull(result); Assert.AreEqual(4, result.Content.Id); Assert.AreEqual(55, result.Content.OrganizationId); Assert.AreEqual(77, result.Content.GTIId); }