public void SutIsProductRepository(SecureProductRepository sut)
 {
     // Fixture setup
     // Exercise system
     // Verify outcome
     Assert.IsAssignableFrom<ProductRepository>(sut);
     // Teardown
 }
 public void InsertProductWillThrowWhenPrincipalIsNotInRequiredRole(SecureProductRepository sut, Product p)
 {
     // Fixture setup
     Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity(string.Empty), null);
     // Exercise system and verify outcome
     Assert.Throws<SecurityException>(() =>
         sut.InsertProduct(p));
     // Teardown
 }
 public void InsertProductWillInsertProductIntoDecoratedRepositoryWhenPrincipalIsInCorrectRole([Frozen]Mock<ProductRepository> repositoryMock,
     GenericIdentity id, Product product, SecureProductRepository sut)
 {
     // Fixture setup
     Thread.CurrentPrincipal = new GenericPrincipal(id, new[] { "ProductManager" });
     // Exercise system
     sut.InsertProduct(product);
     // Verify outcome
     repositoryMock.Verify(r => r.InsertProduct(product));
     // Teardown
 }