123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- # Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
- require 'test_helper'
- class ObjectCreateUpdateWithRefNameTest < ActiveSupport::TestCase
- test 'organization' do
- roles = Role.where(name: %w[Agent Admin])
- groups = Group.all
- user1 = User.create_or_update(
- login: 'object_ref_name1@example.org',
- firstname: 'object_ref_name1',
- lastname: 'object_ref_name1',
- email: 'object_ref_name1@example.org',
- password: 'some_pass',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- roles: roles,
- groups: groups,
- )
- user2 = User.create_or_update(
- login: 'object_ref_name2@example.org',
- firstname: 'object_ref_name2',
- lastname: 'object_ref_name2',
- email: 'object_ref_name2@example.org',
- password: 'some_pass',
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- roles: roles,
- groups: groups,
- )
- org1 = Organization.create_if_not_exists_with_ref(
- name: 'some org update_with_ref member',
- members: ['object_ref_name1@example.org'],
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert(org1.member_ids.sort.include?(user1.id))
- assert_not(org1.member_ids.sort.include?(user2.id))
- org2 = Organization.create_or_update_with_ref(
- name: 'some org update_with_ref member',
- members: ['object_ref_name2@example.org'],
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert_not(org2.member_ids.sort.include?(user1.id))
- assert(org2.member_ids.sort.include?(user2.id))
- assert_equal(org1.id, org2.id)
- org3 = Organization.create_or_update_with_ref(
- name: 'some org update_with_ref member2',
- members: ['object_ref_name2@example.org'],
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert_not(org3.member_ids.sort.include?(user1.id))
- assert(org3.member_ids.sort.include?(user2.id))
- assert_not_equal(org2.id, org3.id)
- assert_raises(ActiveRecord::AssociationTypeMismatch) do
- Organization.create_or_update_with_ref(
- name: 'some org update_with_ref member2',
- members: ['object_ref_name2@example.org'],
- member_ids: [2],
- updated_by_id: 1,
- created_by_id: 1,
- )
- end
- end
- test 'user' do
- Organization.create_if_not_exists_with_ref(
- name: 'some org update_with_ref user',
- updated_by_id: 1,
- created_by_id: 1,
- )
- user1 = User.create_or_update_with_ref(
- login: 'object_ref_name1@example.org',
- firstname: 'object_ref_name1',
- lastname: 'object_ref_name1',
- email: 'object_ref_name1@example.org',
- password: 'some_pass',
- active: true,
- organization: 'some org update_with_ref user',
- updated_by_id: 1,
- created_by_id: 1,
- roles: %w[Agent Admin],
- groups: ['Users'],
- )
- user2 = User.create_or_update_with_ref(
- login: 'object_ref_name2@example.org',
- firstname: 'object_ref_name2',
- lastname: 'object_ref_name2',
- email: 'object_ref_name2@example.org',
- password: 'some_pass',
- organization_id: nil,
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- roles: ['Customer'],
- groups: [],
- )
- admin_role = Role.lookup(name: 'Admin')
- agent_role = Role.lookup(name: 'Agent')
- customer_role = Role.lookup(name: 'Customer')
- users_group = Group.lookup(name: 'Users')
- assert(user1.organization.name, 'some org update_with_ref user')
- assert(user1.group_ids.include?(users_group.id))
- assert(user1.role_ids.include?(admin_role.id))
- assert(user1.role_ids.include?(agent_role.id))
- assert_not(user1.role_ids.include?(customer_role.id))
- assert_nil(user2.organization_id)
- assert_not(user2.group_ids.include?(users_group.id))
- assert_not(user2.role_ids.include?(admin_role.id))
- assert_not(user2.role_ids.include?(agent_role.id))
- assert(user2.role_ids.include?(customer_role.id))
- end
- test 'group' do
- user1 = User.create_or_update_with_ref(
- login: 'object_ref_name1@example.org',
- firstname: 'object_ref_name1',
- lastname: 'object_ref_name1',
- email: 'object_ref_name1@example.org',
- password: 'some_pass',
- active: true,
- organization_id: nil,
- updated_by_id: 1,
- created_by_id: 1,
- roles: %w[Agent Admin],
- groups: [],
- )
- user2 = User.create_or_update_with_ref(
- login: 'object_ref_name2@example.org',
- firstname: 'object_ref_name2',
- lastname: 'object_ref_name2',
- email: 'object_ref_name2@example.org',
- password: 'some_pass',
- organization_id: nil,
- active: true,
- updated_by_id: 1,
- created_by_id: 1,
- roles: ['Customer'],
- groups: [],
- )
- group1 = Group.create_if_not_exists_with_ref(
- name: 'some group update_with_ref',
- users: ['object_ref_name1@example.org'],
- updated_by_id: 1,
- created_by_id: 1,
- )
- assert(group1.name, 'some group update_with_ref')
- assert(group1.user_ids.include?(user1.id))
- assert_not(group1.user_ids.include?(user2.id))
- end
- end
|