public void GetIdFrom_CalledWhenPropertyIsProtectedInternal_ExpectValueOfPropertyIsReturned()
 {
     var id = StringGenerator.AnyNonNull();
     var aggregateRoot = new AggregateRootWithProtectedInternalId(id);
     var getter = new NamedPropertyAggregateRootIdGetter<AggregateRootWithProtectedInternalId, string>(AggregateRootWithProtectedInternalId.PropertyName);
     getter.GetIdFrom(aggregateRoot).Should().BeSameAs(id);
 }
 public void GetIdFrom_CalledWhenPropertyIsNull_ExpectInvalidOperationException()
 {
     var propertyName = Info.OfProperty<AggregateRoot>(x => x.ObjectProperty).Name;
     var getter = new NamedPropertyAggregateRootIdGetter<AggregateRoot, object>(propertyName);
     var aggregateRoot = new AggregateRoot { ObjectProperty = null };
     getter.Invoking(x => x.GetIdFrom(aggregateRoot)).ShouldThrow<InvalidOperationException>();
 }
 public void GetIdFrom_CalledWhenPropertyIsPublic_ExpectValueOfPropertyIsReturned()
 {
     var propertyName = Info.OfProperty<AggregateRoot>(x => x.ObjectProperty).Name;
     var getter = new NamedPropertyAggregateRootIdGetter<AggregateRoot, object>(propertyName);
     var aggregateRoot = new AggregateRoot { ObjectProperty = new object() };
     getter.GetIdFrom(aggregateRoot).Should().BeSameAs(aggregateRoot.ObjectProperty);
 }
 public void GetIdFrom_CalledWithNullAggregateRoot_ExpectArgumentNullExceptionWithCorrectParamName()
 {
     var getter = new NamedPropertyAggregateRootIdGetter<AggregateRoot, object>(Info.OfProperty<AggregateRoot>(x => x.ObjectProperty).Name);
     getter.Invoking(x => x.GetIdFrom(null)).ShouldThrow<ArgumentNullException>().And.ParamName.Should().Be("aggregateRoot");
 }
 public void GetIdFrom_CalledWhenPropertyIsShadowedAndAggregateRootIsDerived_ExpectValueOfDerivedPropertyIsReturned()
 {
     var derivedId = StringGenerator.AnyNonNull();
     var aggregateRoot = new AggregateRootWithShadowedId(StringGenerator.AnyNonNull(), derivedId);
     var getter = new NamedPropertyAggregateRootIdGetter<AggregateRootWithShadowedId, string>(AggregateRootWithShadowedId.PropertyName);
     getter.GetIdFrom(aggregateRoot).Should().BeSameAs(derivedId);
 }