public void UnexpectedAssignDestinationTest() { // Arrange var snapshot = Mock.Of <ISnapshot>(); var refElement = Mock.Of <IDeclaredElement>(); var referenceExpression = Mock.Of <IReferenceExpression>(); var eatHelper = Mock.Of <EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of <ITypeEater>(); var kindHelper = Mock.Of <ExpressionKindHelper>(); var eater = Mock.Of <IEater>(t => t.Eat(snapshot, It.IsAny <ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Assert Assert.Throws <UnexpectedReferenceTypeException>(() => referenceExpressionEater.Eat(snapshot, referenceExpression)); }
public void EatLocalVariableTest() { // Arrange var refElement = Mock.Of <IVariableDeclarationAndIDeclaredElement>(); var referenceExpression = Mock.Of <IReferenceExpression>(); var eatHelper = Mock.Of <EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of <ITypeEater>(); var kindHelper = Mock.Of <ExpressionKindHelper>(); var snapshot = Mock.Of <ISnapshot>(t => t.GetVariableKind(refElement) == ExpressionKind.Target); var eater = Mock.Of <IEater>(t => t.Eat(snapshot, It.IsAny <ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.Target); }
public void EatSelfEventTest() { // Arrange var snapshot = Mock.Of <ISnapshot>(); var refElement = Mock.Of <IEvent>(); var referenceExpression = Mock.Of <IReferenceExpression>(); var eatHelper = Mock.Of <EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of <ITypeEater>(); var kindHelper = Mock.Of <ExpressionKindHelper>(); var eater = Mock.Of <IEater>(t => t.Eat(snapshot, It.IsAny <ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.Stub); }
public void EatByParentTest() { // Arrange var qualifierExpression = Mock.Of <ICSharpExpression>(); var referenceExpression = Mock.Of <IReferenceExpression>(t => t.QualifierExpression == qualifierExpression); var eatHelper = Mock.Of <EatExpressionHelper>(); var typeEater = Mock.Of <ITypeEater>(); var kindHelper = Mock.Of <ExpressionKindHelper>(t => t.ReferenceKindByParentReferenceKind(ExpressionKind.Target) == ExpressionKind.TargetCall); var snapshot = Mock.Of <ISnapshot>(); var eater = Mock.Of <IEater>(t => t.Eat(snapshot, qualifierExpression) == ExpressionKind.Target); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.TargetCall); }
public void EatLocalVariableTest() { // Arrange var refElement = Mock.Of<IVariableDeclarationAndIDeclaredElement>(); var referenceExpression = Mock.Of<IReferenceExpression>(); var eatHelper = Mock.Of<EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of<ITypeEater>(); var kindHelper = Mock.Of<ExpressionKindHelper>(); var snapshot = Mock.Of<ISnapshot>(t => t.GetVariableKind(refElement) == ExpressionKind.Target); var eater = Mock.Of<IEater>(t => t.Eat(snapshot, It.IsAny<ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.Target); }
public void EatByParentTest() { // Arrange var qualifierExpression = Mock.Of<ICSharpExpression>(); var referenceExpression = Mock.Of<IReferenceExpression>(t => t.QualifierExpression == qualifierExpression); var eatHelper = Mock.Of<EatExpressionHelper>(); var typeEater = Mock.Of<ITypeEater>(); var kindHelper = Mock.Of<ExpressionKindHelper>(t => t.ReferenceKindByParentReferenceKind(ExpressionKind.Target) == ExpressionKind.TargetCall); var snapshot = Mock.Of<ISnapshot>(); var eater = Mock.Of<IEater>(t => t.Eat(snapshot, qualifierExpression) == ExpressionKind.Target); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.TargetCall); }
public UnexpectedReferenceTypeException(IDeclaredElement declaredElement, ReferenceExpressionEater eater, ICSharpTreeNode node) : base(string.Format("Unexpected reference declared type. Expected field, property, event, constant, variable or class, but was [{0}]", declaredElement.GetType()), eater, node) { DeclaredElement = declaredElement; }
public void EatSelfEventTest() { // Arrange var snapshot = Mock.Of<ISnapshot>(); var refElement = Mock.Of<IEvent>(); var referenceExpression = Mock.Of<IReferenceExpression>(); var eatHelper = Mock.Of<EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of<ITypeEater>(); var kindHelper = Mock.Of<ExpressionKindHelper>(); var eater = Mock.Of<IEater>(t => t.Eat(snapshot, It.IsAny<ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Act var kind = referenceExpressionEater.Eat(snapshot, referenceExpression); // Assert Assert.AreEqual(kind, ExpressionKind.Stub); }
public void UnexpectedAssignDestinationTest() { // Arrange var snapshot = Mock.Of<ISnapshot>(); var refElement = Mock.Of<IDeclaredElement>(); var referenceExpression = Mock.Of<IReferenceExpression>(); var eatHelper = Mock.Of<EatExpressionHelper>(t => t.GetReferenceElement(referenceExpression) == refElement); var typeEater = Mock.Of<ITypeEater>(); var kindHelper = Mock.Of<ExpressionKindHelper>(); var eater = Mock.Of<IEater>(t => t.Eat(snapshot, It.IsAny<ICSharpExpression>()) == ExpressionKind.None); var referenceExpressionEater = new ReferenceExpressionEater(eater, kindHelper, eatHelper, typeEater); // Assert Assert.Throws<UnexpectedReferenceTypeException>(() => referenceExpressionEater.Eat(snapshot, referenceExpression)); }