public void HaveAuthenticationAttribute_AndCheckForModeratorRole() { var baseType = typeof(ModeratorBaseController); var mockedVideoService = new Mock <IVideoService>(); var mockedVideoFactory = new Mock <IVideoFactory>(); var mockedDateProvider = new Mock <IDateProvider>(); var lakeController = new VideoController(mockedVideoService.Object, mockedVideoFactory.Object, mockedDateProvider.Object); Assert.IsTrue(baseType.IsAssignableFrom(lakeController.GetType())); var methodsInfo = lakeController.GetType().GetMethods(); foreach (var method in methodsInfo) { if (method.Name == "Add") { var attributes = method.DeclaringType.BaseType.CustomAttributes.Any(a => a.NamedArguments.Any(n => n.MemberName == "Roles" && n.TypedValue.Value.ToString() == "Moderator")); Assert.IsTrue(attributes); } } }