Permalink
Please sign in to comment.
Showing
with
307 additions
and 56 deletions.
- +7 −7 Facts/Commands/CreatedCuratedPackageCommandFacts.cs
- +86 −0 Facts/Commands/DeleteCuratedPackageCommandFacts.cs
- +94 −15 Facts/Controllers/CuratedPackagesControllerFacts.cs
- +1 −0 Facts/Facts.csproj
- +4 −1 Website/App_Start/ContainerBindings.cs
- +2 −2 Website/Commands/{CreatedCuratedPackageCommand.cs → CreateCuratedPackageCommand.cs}
- +37 −0 Website/Commands/DeleteCuratedPackageCommand.cs
- +48 −25 Website/Controllers/CuratedPackagesController.cs
- +2 −1 Website/Entities/EntitiesContext.cs
- +1 −1 Website/RequestModels/{CreatedCuratedPackageRequest.cs → CreateCuratedPackageRequest.cs}
- +21 −1 Website/Views/CuratedFeeds/CuratedFeed.cshtml
- +1 −1 Website/Views/CuratedPackages/CreateCuratedPackageForm.cshtml
- +3 −2 Website/Website.csproj
@@ -0,0 +1,86 @@ | ||
+using System; | ||
+using Moq; | ||
+using Xunit; | ||
+using System.Data.Entity; | ||
+ | ||
+namespace NuGetGallery.Commands | ||
+{ | ||
+ public class DeleteCuratedPackageCommandFacts | ||
+ { | ||
+ public class TheExecuteMethod | ||
+ { | ||
+ [Fact] | ||
+ public void WillThrowWhenCuratedFeedDoesNotExist() | ||
+ { | ||
+ var cmd = new TestableDeleteCuratedPackageCommand(); | ||
+ cmd.StubCuratedFeedByKeyQry | ||
+ .Setup(stub => stub.Execute(It.IsAny<int>(), It.IsAny<bool>())) | ||
+ .Returns((CuratedFeed)null); | ||
+ | ||
+ Assert.Throws<InvalidOperationException>(() => cmd.Execute( | ||
+ 42, | ||
+ 0)); | ||
+ } | ||
+ | ||
+ [Fact] | ||
+ public void WillThrowWhenCuratedPackageDoesNotExist() | ||
+ { | ||
+ var cmd = new TestableDeleteCuratedPackageCommand(); | ||
+ cmd.StubCuratedFeed.Packages = new[] { new CuratedPackage() { Key = 0 } }; | ||
+ | ||
+ Assert.Throws<InvalidOperationException>(() => cmd.Execute( | ||
+ 0, | ||
+ 1066)); | ||
+ } | ||
+ | ||
+ [Fact] | ||
+ public void WillDeleteTheCuratedPackage() | ||
+ { | ||
+ var cmd = new TestableDeleteCuratedPackageCommand(); | ||
+ var stubCuratedPackage = new CuratedPackage { Key = 1066 }; | ||
+ cmd.StubCuratedFeed.Packages = new[] { stubCuratedPackage }; | ||
+ | ||
+ cmd.Execute( | ||
+ 0, | ||
+ 1066); | ||
+ | ||
+ cmd.StubCuratedPackageDbSet.Verify(stub => stub.Remove(stubCuratedPackage)); | ||
+ cmd.StubEntitiesContext.Verify(stub => stub.SaveChanges()); | ||
+ } | ||
+ } | ||
+ | ||
+ public class TestableDeleteCuratedPackageCommand : DeleteCuratedPackageCommand | ||
+ { | ||
+ public TestableDeleteCuratedPackageCommand() | ||
+ : base(null) | ||
+ { | ||
+ StubCuratedFeed = new CuratedFeed { Key = 0, Name = "aName", }; | ||
+ StubCuratedPackageDbSet = new Mock<IDbSet<CuratedPackage>>(); | ||
+ StubCuratedFeedByKeyQry = new Mock<ICuratedFeedByKeyQuery>(); | ||
+ StubEntitiesContext = new Mock<IEntitiesContext>(); | ||
+ | ||
+ StubCuratedFeedByKeyQry | ||
+ .Setup(stub => stub.Execute(It.IsAny<int>(), It.IsAny<bool>())) | ||
+ .Returns(StubCuratedFeed); | ||
+ StubEntitiesContext | ||
+ .Setup(stub => stub.CuratedPackages) | ||
+ .Returns(StubCuratedPackageDbSet.Object); | ||
+ | ||
+ Entities = StubEntitiesContext.Object; | ||
+ } | ||
+ | ||
+ public CuratedFeed StubCuratedFeed { get; set; } | ||
+ public Mock<IDbSet<CuratedPackage>> StubCuratedPackageDbSet { get; private set; } | ||
+ public Mock<ICuratedFeedByKeyQuery> StubCuratedFeedByKeyQry { get; set; } | ||
+ public Mock<IEntitiesContext> StubEntitiesContext { get; private set; } | ||
+ | ||
+ protected override T GetService<T>() | ||
+ { | ||
+ if (typeof(T) == typeof(ICuratedFeedByKeyQuery)) | ||
+ return (T)StubCuratedFeedByKeyQry.Object; | ||
+ | ||
+ throw new Exception("Tried to get unexpected service"); | ||
+ } | ||
+ } | ||
+ } | ||
+} |

Oops, something went wrong.
0 comments on commit
5390463