public void Contact_ContactInitialized_ShouldReturnContact([NoAutoProperties] ContactFacetsProvider provider, ITracker tracker, Contact contact)
 {
     // Arrange
     tracker.IsActive.Returns(true);
     tracker.Contact.Returns(contact);
     using (new TrackerSwitcher(tracker))
     {
         // Act / Assert
         tracker.Contact.Should().NotBeNull();
         provider.Contact.Should().BeEquivalentTo(tracker.Contact);
     }
 }
        public void KeyBehaviorCache_WhenNotExist_ShouldReturnNull([NoAutoProperties] ContactFacetsProvider provider, ITracker tracker, [Substitute] Contact contact)
        {
            // Arrange
            tracker.IsActive.Returns(true);
            contact.Attachments.Clear();
            tracker.Contact.Returns(contact);

            using (new TrackerSwitcher(tracker))
            {
                // Act / Assert
                provider.KeyBehaviorCache.Should().BeNull();
            }
        }
        public void BehaviorProfiles_FacetExists_ShouldReturnContactBehaviorProfiles([NoAutoProperties] ContactFacetsProvider provider, IContactBehaviorProfilesContext facet, ITracker tracker, [Substitute] Contact contact)
        {
            // Arrange
            tracker.IsActive.Returns(true);
            tracker.Contact.Returns(contact);
            contact.BehaviorProfiles.Returns(facet);

            using (new TrackerSwitcher(tracker))
            {
                // Act / Assert
                provider.BehaviorProfiles.Should().NotBeNull();
                provider.BehaviorProfiles.Should().BeEquivalentTo(facet.Profiles);
            }
        }
        public void Addresses_FacetExists_ShouldReturnContactAddressProperty([NoAutoProperties] ContactFacetsProvider provider, IXConnectFacets facets, AddressList facet, ITracker tracker, [Substitute] Contact contact)
        {
            // Arrange
            tracker.IsActive.Returns(true);
            tracker.Contact.Returns(contact);
            facets.Facets.Returns(new ReadOnlyDictionary <string, Facet>(new Dictionary <string, Facet>
            {
                {
                    AddressList.DefaultFacetKey, facet
                }
            }));
            contact.GetFacet <IXConnectFacets>("XConnectFacets").Returns(facets);

            using (new TrackerSwitcher(tracker))
            {
                // Act
                var addresses = provider.Addresses;

                // Assert
                addresses.Should().NotBeNull();
                addresses.Should().BeEquivalentTo(facet);
            }
        }
        public void CommunicationProfile_FacetExists_ShouldReturnContactCommunicationProfile([NoAutoProperties] ContactFacetsProvider provider, IXConnectFacets facets, ConsentInformation facet, ITracker tracker, [Substitute] Contact contact)
        {
            // Arrange
            tracker.IsActive.Returns(true);
            tracker.Contact.Returns(contact);
            facets.Facets.Returns(new ReadOnlyDictionary <string, Facet>(new Dictionary <string, Facet>
            {
                {
                    ConsentInformation.DefaultFacetKey, facet
                }
            }));
            contact.GetFacet <IXConnectFacets>("XConnectFacets").Returns(facets);

            using (new TrackerSwitcher(tracker))
            {
                // Act
                var profile = provider.CommunicationProfile;

                // Assert
                profile.Should().NotBeNull();
                profile.Should().BeEquivalentTo(facet);
            }
        }