Я хочу найти нечитаемые файлы в моем каталоге (например, файлы с gr). Я попробовал это:
найти. -perm -gr
Он показывает мне все файлы ?? Я попробовал это:
найти. -perm -g + r
И он показал мне только читаемые файлы. Похоже, что -perm -gr
соответствует всем файлам. Я использую CentOS 5.5. Я делаю что-то неправильно? Не похоже, что -perm -gr
делает что-нибудь полезное.
public interface IDomainObject {...} // определяет объекты домена, специфичные для БД безопасности
открытый интерфейс ...
Итак, используя NUnit и RhinoMocks:
//Defines basic behavior of all persistable domain objects
public interface IDomainObject {...}
//defines domain objects specific to the Security DB
public interface ISecurityDomainObject : IDomainObject {...}
//Defines a basic transactional data Repository; there are multiple implementors
//which each close TRest to the interface that defines their DB's domain classes
public interface IRepository<TRest> : IDisposable where TRest:IDomainObject
{
IUnitOfWork BeginUnitOfWork();
void CommitUnitOfWork(IUnitOfWork unitOfWork);
void RollBackUnitOfWork(IUnitOfWork unitOfWork);
void Save<T>(T domainObject, IUnitOfWork unitOfWork) where T : class, TRest;
IQueryable<T> QueryFor<T>(IUnitOfWork unitOfWork) where T :class, TRest;
}
public interface ISecurityRepository:IRepository<ISecurityDomainObject> {}
public class SecurityRepository:ISecurityRepository
...
//This line breaks when run in an NUnit test
var securityRepository = MockRepository.GenerateMock<ISecurityRepository>();
...
Я получаю следующую ошибку:
System.TypeLoadException : Method 'Save' on type 'ISecurityRepositoryProxyb8e21deb3cb04067a01ac5b63f7045af' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' tried to implicitly implement an interface method with weaker type parameter constraints.
at System.Reflection.Emit.TypeBuilder.TermCreateClass(RuntimeModule module, Int32 tk, ObjectHandleOnStack type)
at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
at System.Reflection.Emit.TypeBuilder.CreateType()
at Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType()
at Castle.DynamicProxy.Generators.InterfaceProxyWithTargetGenerator.GenerateCode(Type proxyTargetType, Type[] interfaces, ProxyGenerationOptions options)
at Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, IInterceptor[] interceptors)
at Rhino.Mocks.MockRepository.MockInterface(CreateMockState mockStateFactory, Type type, Type[] extras)
at Rhino.Mocks.MockRepository.CreateMockObject(Type type, CreateMockState factory, Type[] extras, Object[] argumentsForConstructor)
at Rhino.Mocks.MockRepository.DynamicMock(Object[] argumentsForConstructor)
at Rhino.Mocks.MockRepository.<>c__DisplayClass7`1.<GenerateMock>b__6(MockRepository r)
at Rhino.Mocks.MockRepository.CreateMockInReplay(Func`2 createMock)
at Rhino.Mocks.MockRepository.GenerateMock(Object[] argumentsForConstructor)
at CSHD.Tests.Unit.Presentation.LoginTests.TestAuthenticationFails() in LoginTests.cs: line 138
При попытке сгенерировать макет конкретного класса я получаю аналогичную ошибку, на этот раз в QueryFor ( ) метод. Если я попытаюсь переопределить методы, которые используют TRest в интерфейсе ISecurityRepository, я получаю «System.BadImageFormatException: была сделана попытка загрузить программу с неправильным форматом. (Исключение из HRESULT: 0x8007000B)», которое выглядит как шаг назад .
Я думаю, что основная проблема заключается в том, что RhinoMocks сбивается с толку из-за того, что общие параметры используются в качестве ограничений общего типа. Я понятия не имею, где именно это сбивается, и поэтому не знаю, как и могу ли я распутать это. У меня есть достаточное покрытие интеграционных тестов, поэтому я могу игнорировать эти неудачные модульные тесты, если мне это абсолютно необходимо но, очевидно, я лучше исправлю их, если смогу. Ваши мысли?