예제 #1
0
        public void TestDefault ()
        {
            var workspaceId = Guid.NewGuid ();

            // Data before server push
            var merger = new WorkspaceMerger (new WorkspaceData () {
                Id = workspaceId,
                RemoteId = null,
                RemoteRejected = false,
                DeletedAt = null,
                IsDirty = true,
                ModifiedAt = new DateTime (2014, 1, 10, 10, 0, 0, DateTimeKind.Utc),
                Name = "Initial",
                IsPremium = false,
                DefaultRate = 10,
                DefaultCurrency = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility = AccessLevel.Admin,
                RoundingMode = RoundingMode.Nearest,
                RoundingPercision = 2,
                LogoUrl = null,
            });

            // Data from server
            merger.Add (new WorkspaceData () {
                Id = workspaceId,
                RemoteId = 1,
                RemoteRejected = false,
                DeletedAt = null,
                IsDirty = false,
                ModifiedAt = new DateTime (2014, 1, 10, 10, 0, 1, DateTimeKind.Utc),
                Name = "Initial",
                IsPremium = true,
                DefaultRate = 10,
                DefaultCurrency = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility = AccessLevel.Admin,
                RoundingMode = RoundingMode.Nearest,
                RoundingPercision = 2,
                LogoUrl = "http://...",
            });

            // Data changed by user in the mean time
            merger.Add (new WorkspaceData () {
                Id = workspaceId,
                RemoteId = null,
                RemoteRejected = false,
                DeletedAt = null,
                IsDirty = true,
                ModifiedAt = new DateTime (2014, 1, 10, 10, 0, 2, DateTimeKind.Utc),
                Name = "Changed",
                IsPremium = false,
                DefaultRate = 10,
                DefaultCurrency = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility = AccessLevel.Admin,
                RoundingMode = RoundingMode.Nearest,
                RoundingPercision = 2,
                LogoUrl = null,
            });

            // Merged version
            AssertPropertiesEqual (new WorkspaceData () {
                Id = workspaceId,
                RemoteId = 1,
                RemoteRejected = false,
                DeletedAt = null,
                IsDirty = true,
                ModifiedAt = new DateTime (2014, 1, 10, 10, 0, 2, DateTimeKind.Utc),
                Name = "Changed",
                IsPremium = true,
                DefaultRate = 10,
                DefaultCurrency = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility = AccessLevel.Admin,
                RoundingMode = RoundingMode.Nearest,
                RoundingPercision = 2,
                LogoUrl = "http://...",
            }, merger.Result);
        }
예제 #2
0
        public void TestDefault()
        {
            var workspaceId = Guid.NewGuid();

            // Data before server push
            var merger = new WorkspaceMerger(new WorkspaceData()
            {
                Id                        = workspaceId,
                RemoteId                  = null,
                RemoteRejected            = false,
                DeletedAt                 = null,
                IsDirty                   = true,
                ModifiedAt                = new DateTime(2014, 1, 10, 10, 0, 0, DateTimeKind.Utc),
                Name                      = "Initial",
                IsPremium                 = false,
                DefaultRate               = 10,
                DefaultCurrency           = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility   = AccessLevel.Admin,
                RoundingMode              = RoundingMode.Nearest,
                RoundingPercision         = 2,
                LogoUrl                   = null,
            });

            // Data from server
            merger.Add(new WorkspaceData()
            {
                Id                        = workspaceId,
                RemoteId                  = 1,
                RemoteRejected            = false,
                DeletedAt                 = null,
                IsDirty                   = false,
                ModifiedAt                = new DateTime(2014, 1, 10, 10, 0, 1, DateTimeKind.Utc),
                Name                      = "Initial",
                IsPremium                 = true,
                DefaultRate               = 10,
                DefaultCurrency           = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility   = AccessLevel.Admin,
                RoundingMode              = RoundingMode.Nearest,
                RoundingPercision         = 2,
                LogoUrl                   = "http://...",
            });

            // Data changed by user in the mean time
            merger.Add(new WorkspaceData()
            {
                Id                        = workspaceId,
                RemoteId                  = null,
                RemoteRejected            = false,
                DeletedAt                 = null,
                IsDirty                   = true,
                ModifiedAt                = new DateTime(2014, 1, 10, 10, 0, 2, DateTimeKind.Utc),
                Name                      = "Changed",
                IsPremium                 = false,
                DefaultRate               = 10,
                DefaultCurrency           = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility   = AccessLevel.Admin,
                RoundingMode              = RoundingMode.Nearest,
                RoundingPercision         = 2,
                LogoUrl                   = null,
            });

            // Merged version
            AssertPropertiesEqual(new WorkspaceData()
            {
                Id                        = workspaceId,
                RemoteId                  = 1,
                RemoteRejected            = false,
                DeletedAt                 = null,
                IsDirty                   = true,
                ModifiedAt                = new DateTime(2014, 1, 10, 10, 0, 2, DateTimeKind.Utc),
                Name                      = "Changed",
                IsPremium                 = true,
                DefaultRate               = 10,
                DefaultCurrency           = "EUR",
                ProjectCreationPrivileges = AccessLevel.Admin,
                BillableRatesVisibility   = AccessLevel.Admin,
                RoundingMode              = RoundingMode.Nearest,
                RoundingPercision         = 2,
                LogoUrl                   = "http://...",
            }, merger.Result);
        }